+2005-04-10 Kazu Hirata <kazu@cs.umass.edu>
+
+ * config/arm/arm.c: Fix a comment typo.
+ * doc/tree-ssa.texi: Fix a typo.
+
+2005-04-10 Steven Bosscher <stevenb@suse.de>
+
+ * cselib.c (clear_table): Rename to cselib_clear_table.
+ * cselib.h (cselib_clear_table): Add prototype.
+ * gcse.c (gcse_main): Make 'f' argument unused.
+ (alloc_gcse_mem): Do not walk the insn chain, walk the contents
+ of each basic block instead.
+ (compute_sets, compute_hash_table_work): Likewise.
+ (constprop_register): Change int 'alter_jumps' argument to bool.
+ (do_local_cprop): Likewise.
+ (local_cprop_pass): Likewise. Also walk basic blocks instead of
+ the insn chain. Explicitly clear the cselib tables after finishing
+ one basic block. Make sure there are no unterminated libcall blocks.
+ Update compute_sets call.
+ (cprop): Walk basic blocks instead of the insn chain.
+ (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
+ Likewise.
+ (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
+ one_cprop_pass calls.
+
+2005-04-10 Richard Sandiford <rsandifo@redhat.com>
+
+ * combine.c (combine_simplify_rtx): Remove a transformation that
+ relies on an invalid assumption about rtl sign-extension semantics.
+
+2005-04-10 Richard Sandiford <rsandifo@redhat.com>
+
+ * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
+ to build_int_cst_wide.
+
+2005-04-09 Alexandre Oliva <aoliva@redhat.com>
+
+ PR target/20126
+ * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
+ set the original address pseudo to the correct value before the
+ original insn, if possible, and leave the insn alone, otherwise
+ create a new pseudo, set it and replace it in the insn.
+ * recog.c (validate_change_maybe_volatile): New.
+ * recog.h (validate_change_maybe_volatile): Declare.
+
+2005-04-09 Caroline Tice <ctice@apple.com>
+
+ * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
+ Remove targetm.have_named_sections test.
+ (fix_edges_for_rarely_executed_code): Likewise.
+ (insert_section_boundary_note): Likewise.
+ (reorder_basic_blocks): Check partitioning flag before calling
+ verify_hot_cold_block_grouping.
+ * dbxout.c (dbxout_function_end): Get hot/cold section labels from
+ the function struct rather than global variables.
+ * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
+ (COLD_END_LABEL): Likewise
+ (cold_text_section_label): New static global variable.
+ (cold_end_label): Likewise.
+ (dwarf2out_switch_text_section): Get hot/cold section labels from
+ the function struct rather than global variables.
+ (output_aranges): Use cold_text_section_label and cold_end_label;
+ check partitioning flag before putting out delta.
+ (output_ranges): Remove incorrect code attempting to use
+ hot/cold labels.
+ (output_line_info): Get cold section label from function struct.
+ (add_location_or_const_value_attribute): Likewise.
+ (get_subprogram_die): Get hot/cold section labels from function struct.
+ (dwarf2out_var_location): Likewise.
+ (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
+ write out cold_text_section_label if partition flag is set.
+ (dwarf2out_finish): Write out cold_end_label if partition flag is set;
+ * function.h (struct function): Add new fields to point to hot/cold
+ section labels: hot_section_label, cold_section_label,
+ hot_section_end_label and cold_section_end_label; also add new field
+ for cold text section name, unlikely_text_section_name.
+ * opts.c (decode_options): Turn off partitioning flag if
+ !targetm.have_named_sections.
+ * output.h (hot_section_label): Remove.
+ (hot_section_end_label): Remove.
+ (cold_section_end_label): Remove.
+ (unlikely_section_label): Remove.
+ (unlikely_text_section_name): Remove.
+ * passes.c (rest_of_handle_final): Remove code that frees
+ unlikely_text_section_name.
+ * varasm.c (unlikely_section_label): Remove.
+ (hot_section_label): Remove.
+ (hot_section_end_label): Remove.
+ (cold_section_end_label): Remove.
+ (unlikely_text_section_name): Remove.
+ (initialize_cold_section_name): Modify to call
+ targetm.strip_name_encoding; to store cold section name in current
+ function struct, if it exists; and to only use the decl_section_name
+ if flag_named_sections is true.
+ (unlikely_text_section): Modify to get section name out of current
+ function struct, if there is one; otherwise build it from
+ UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
+ (in_unlikely_text_section): Likewise.
+ (named_section): Modify to get/put cold section name in current function
+ struct, if there is one.
+ (function_section): Change 'bool unlikely' to 'int reloc'; check
+ targetm.have_named_sections before calling named_section.
+ (current_function_section): Likewise.
+ (assemble_start_function): Modify to get/put unlikely_text_section_name
+ in current function struct; modify to get hot/cold section labels
+ from function struct; initialize labels using
+ ASM_GENERATE_INTERNAL_LABEL;
+ test partitioning flag before writing out hot section label.
+ (assemble_end_function): Test partitioning flag before writing out
+ hot/cold section labels.
+ (default_section_type_flags_1): Modify to use array instead of
+ char* for unlikely_text_section_name; set flags correctly for
+ cold text section if there is not a current function decl.
+
2005-04-09 Jakub Jelinek <jakub@redhat.com>
* tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
* config/mn10300/mn10300.opt: New file.
2005-04-05 Eric Botcazou <ebotcazou@libertysurf.fr>
- Sebastian Pop <sebastian.pop@cri.ensmp.fr>
+ Sebastian Pop <sebastian.pop@cri.ensmp.fr>
PR tree-optimization/19903
* tree-chrec.c (chrec_convert): Return chrec_dont_know for constants
CRIS epilogue as RTL.
* config/cris/cris.md: Change all 0 in unspec 0 to
CRIS_UNSPEC_PLT.
- (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
+ (CRIS_UNSPEC_PLT, CRIS_UNSPEC_FRAME_DEALLOC): New constants.
("*cris_load_multiple", "cris_frame_deallocated_barrier"): New
patterns.
("return"): Change to define_expand. Call cris_expand_return for