OSDN Git Service

PR target/29096
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
index a86b749..d26292e 100644 (file)
@@ -1,4 +1,175 @@
+2008-04-22  Uros Bizjak  <ubizjak@gmail.com>
+
+       PR target/29096
+       * config/i386/xmmintrin.h (_mm_cvtpi16_ps): Rearrange calls to
+       builtin functions to generate faster code.
+       (_mm_cvtpu16_ps): Ditto.
+       (_mm_cvtpi32x2_ps): Ditto.
+
+2008-04-22  Nick Clifton  <nickc@redhat.com>
+
+       * common.opt (ftree-loop-distribution): Add Optimization
+       attribute.
+
+       * config/frv/frv.c (frv_stack_info): Use crtl instead of cfun.
+       (frv_expand_builtin_va_start): Likewise.
+
+       * config/arm/arm.c (thumb_find_work_register): Fix location of
+       argument register count.
+
+2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       Support scheduling for ColdFire V1 and V3 microarchitecture.
+       Improve scheduling of multiplication instructions.
+
+       * config/m68k/m68k.md (cpu): Add cfv1 and cfv3.  Rename cf_v2 to cfv1.
+       (mac): New instruction attribute.
+       * config/m68k/m68k.c (override_options): Handle cfv1, cfv3 and mac.
+       (m68k_sched_mac): New variable.
+       (m68k_sched_attr_type2, m68k_sched_md_init_global): Update.
+       Handle cfv1 and cfv3.
+       (max_insn_size): New static variable.
+       (struct _sched_ib): New type.
+       (sched_ib): New static variable.
+       (sched_ib_size, sched_ib_filled, sched_ib_insn): Convert variables
+       to fields of 'struct _sched_ib sched_ib'.  Update all uses.
+       (m68k_sched_variable_issue): Add modeling of cfv3 instruction buffer.
+       Update.
+       (m68k_sched_md_init_global, m68k_sched_md_finish_global,
+       m68k_sched_md_init, m68k_sched_md_finish): Handle cfv1 and cfv3.  Init
+       new variables.  Update.
+       (m68k_sched_dfa_pre_advance_cycle, m68k_sched_dfa_post_advance_cycle):
+       Add modeling of cfv3 instruction buffer.  Update.
+       * config/m68k/m68k-protos.h (m68k_sched_mac): Declare.
+       * config/m68k/m68k.h (TUNE_CFV3): New macro.
+       * config/m68k/cf.md: Change substrings 'cf_v2' to 'cfv12' or 'cfv123'.
+       (cf_* reservations): Rename to cfv12 or cfv123 to indicate cores
+       a particular reservation applies to.
+       (type2): Reorganize attribute values.  Rename alu to alu_reg,
+       alu_l to alu, move_l to omove.  Join move to alu.  Split mul
+       to mul_l and mul_w.
+       (cf_ib_*): Simplify description of instruction buffer.
+       (cf_ib_w0, cf_ib_w4, cf_ib_w5, cf_ib_w6): Remove.
+       (cf_mem): Split into cf_mem1 and cf_mem2.
+       (cf_v2_move_??): Rename to cfv12_alu_??.
+       (cf_v2_move_l_??): Rename to cfv12_omove_??.
+       (cf_v2_mul_??): Remove reservations.
+       (cfv12_mul_l_??, cfv12_mul_w_??, cfv12_mac_w_??, cfv12_mac_l_??,
+       cfv12_emac_??, cfv12_emac_w_i0): New reservations.
+       (cfv12_rts, cfv12_call, cfv12_bcc, cfv12_bra, cfv12_jmp): Move to
+       appropriate place.
+       (cfv3_alu_10, cfv3_omove_10, cfv3_alu_i0, cfv3_omove_i0, cfv3_alu_01,
+       cfv3_alu_0i, cfv3_alu_11, cfv3_omove_11, cfv3_alu_i1, cfv3_omove_i1,
+       cfv3_alu_1i, cfv3_omove_1i, cfv3_pea_11, cfv3_pea_i1, cfv3_mul_w_10,
+       cfv3_mul_l_10, cfv3_mul_w_i0, cfv3_mac_w_10, cfv3_mac_l_10,
+       cfv3_mac_w_i0, cfv3_emac_10, cfv3_emac_w_i0, cfv3_rts, cfv3_call,
+       cfv3_bcc, cfv3_bra, cfv3_jmp): New reservations.
+       (cfv3_*_1, cfv3_*_2, cfv3_*_3): New instruction reservations that are
+       expansions of the above reservations for instructions of sizes
+       1, 2 and 3 words.
+
+2008-04-22  Maxim Kuvyrkov  <maxim@codesourcery.com>
+
+       * rtl-factoring.c (collect_patterns_seqs): Handle CC0 targets.
+
+2008-04-21  Adam Nemet  <anemet@caviumnetworks.com>
+
+       * coverage.c: Include tree-pass.h.
+       (coverage_counter_alloc): Print da_file_name to the dump file.
+
+2008-04-21  Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * sbitmap.c (sbitmap_range_empty_p): New function.
+       * sbitmap.h (sbitmap_range_empty_p): New function.
+       * bitmap.h: Now includes obstack.h.
+
+2008-04-21  Richard Sandiford  <rsandifo@nildram.co.uk>
+           Kenneth Zadeck <zadeck@naturalbridge.com>
+
+       * dbgcnt.def (ra_byte_scan): Added.
+       * dbgcnt.c (dbg_cnt): Added code to print message to dump_file
+       when the last hit happens for a counter.  
+       * timevar.def (TV_DF_BYTE_LR): New variable.
+       * tree-pass.h (pass_fast_rtl_byte_dce): New pass.
+       * passes.c (pass_fast_rtl_byte_dce): New pass.
+       * fwprop.c (update_df): Added mode to call df_ref_create.
+       Renamed DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       * df.h (DF_BYTE_LR, DF_BYTE_LR_BB_INFO, DF_BYTE_LR_IN, 
+       DF_BYTE_LR_OUT, df_byte_lr): New macro.
+       (df_mm): New enum.
+       (df_ref_extract): Added mode field.
+       (DF_REF_WIDTH, DF_REF_OFFSET) Renamed to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       (DF_REF_EXTRACT_MODE): New macro.
+       (df_byte_lr_bb_info): New structure.
+       (df_print_byte_regset, df_compute_accessed_bytes, 
+       df_byte_lr_add_problem, df_byte_lr_get_regno_start,
+       df_byte_lr_get_regno_len, df_byte_lr_simulate_defs,
+       df_byte_lr_simulate_uses,
+       df_byte_lr_simulate_artificial_refs_at_top,
+       df_byte_lr_simulate_artificial_refs_at_end,
+       df_compute_accessed_bytes): New function.
+       (df_ref_create): Add parameter.
+       (df_byte_lr_get_bb_info): New inline function.
+       * df-scan.c (df_ref_record, df_uses_record,
+       df_ref_create_structure): Added mode parameter.
+       (df_ref_create, df_notes_rescan, df_ref_record, df_def_record_1, 
+       df_defs_record, df_uses_record, df_get_conditional_uses,
+       df_get_call_refs, df_insn_refs_collect, df_bb_refs_collect, 
+       df_entry_block_defs_collect, df_exit_block_uses_collect):
+       Added mode parameter to calls to df_ref_record, df_uses_record,
+       df_ref_create_structure.
+               (df_ref_equal_p, df_ref_compare): Added test for modes.
+       (df_ref_create_structure): Added code to set mode.  Renamed
+       DF_REF_WIDTH and DF_REF_OFFSET to DF_REF_EXTRACT_WIDTH and
+       DF_REF_EXTRACT_OFFSET.
+       * df-core.c (df_print_byte_regset): New function.
+       * df-byte-scan.c: New file.
+       * df-problems.c (df_rd_transfer_function): Removed unnecessary
+       calls to BITMAP_FREE.  
+       (df_byte_lr_problem_data, df_problem problem_BYTE_LR): New structure.
+       (df_byte_lr_get_regno_start, df_byte_lr_get_regno_len,
+       df_byte_lr_set_bb_info, df_byte_lr_free_bb_info, 
+       df_byte_lr_check_regs, df_byte_lr_expand_bitmap, 
+       df_byte_lr_alloc, df_byte_lr_reset, df_byte_lr_bb_local_compute,
+       df_byte_lr_local_compute, df_byte_lr_init,
+       df_byte_lr_confluence_0, df_byte_lr_confluence_n, 
+       df_byte_lr_transfer_function, df_byte_lr_free, 
+       df_byte_lr_top_dump, df_byte_lr_bottom_dump,
+       df_byte_lr_add_problem, df_byte_lr_simulate_defs, 
+       df_byte_lr_simulate_uses,
+       df_byte_lr_simulate_artificial_refs_at_top,
+       df_byte_lr_simulate_artificial_refs_at_end): New function.
+       * dce.c (byte_dce_process_block): New function.
+       (dce_process_block): au is now passed in rather than computed
+       locally.  Changed loops that look at artificial defs to not look
+       for conditional or partial ones, because there never are any.  
+       (fast_dce): Now is able to drive byte_dce_process_block or 
+       dce_process_block depending on the kind of dce being done.
+       (rest_of_handle_fast_dce): Add parameter to fast_dce.
+       (rest_of_handle_fast_byte_dce): New function.
+       (rtl_opt_pass pass_fast_rtl_byte_dce): New pass.
+       * Makefile.in (df-byte-scan.o, debugcnt.o): Added dependencies.
+
+2008-04-21  Daniel Franke  <franke.daniel@gmail.com>
+
+       PR fortran/35019
+       * gcc.h: Added fortran options that take arguments to
+       DEFAULT_SWITCH_TAKES_ARG and DEFAULT_WORD_SWITCH_TAKES_ARG
+       macros.
+
+2008-04-20  Eric Botcazou  <ebotcazou@adacore.com>
+
+       * tree-sra.c (sra_walk_expr) <VIEW_CONVERT_EXPR>: Disable
+       scalarization if on the LHS and not a full access.
+
+2008-04-20  Ralf Wildenhues  <Ralf.Wildenhues@gmx.de>
+
+       * Makefile.in (s-gtyp-input): Remove tmp-gi.list before writing it.
+
 2008-04-18  Rafael Espindola  <espindola@google.com>
+
        * tree-vrp.c (find_case_label_index): Fix the binary search.
        (find_case_label_range): New.
        (vrp_visit_switch_stmt): Use find_case_label_range.
 
 2008-03-28  Nick Clifton  <nickc@redhat.com>
 
+       PR target/31110
        * config/mn10300/mn10300.c (mn10300_secondary_reload_class):
        Return GENERAL_REGS for stack adjustment reloads.