+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.