* tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
[official-gcc.git] / gcc / ChangeLog
blob83a8a0f9f6c46151b1f8b35b4bbec0ef214c1de6
1 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
3         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
4         (rewrite_into_ssa): ... here.
6 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
8         PR tree-optimization/19786
9         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
10         tag to another's may-alias bitmap when adding to the other's list.
12 2005-02-21  DJ Delorie  <dj@redhat.com>
14         * tree-ssa-loop-ivopts.c (computation_cost): Start register
15         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
16         registers in unsupported ways.
17         * expmed.c (init_expmed): Likewise.
18         
19 2005-02-21  Stan Cox  <scox@redhat.com>
21         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
23 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
25         * tree-cfg.c (fold_cond_expr_cond): New.
26         (make_edges): Call fold_cond_expr_cond.
27         (find_taken_edge): Accept nothing but INTEGER_CST.
28         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
29         and 1.
30         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
32         * flow.c (delete_dead_jumptables): Speed up by scanning insns
33         that do not belong to any basic block.
35 2005-02-21  Jeff Law  <law@redhat.com>
37         * cfganal.c (find_unreachable_blocks): Manually CSE load of
38         e->dest.
40 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
42         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
43         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
44         Adjust their definitions.
45         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
46         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
48         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
49         genautomata.c, langhooks.c, langhooks.h, system.h,
50         config/arm/lib1funcs.asm: Update copyright.
52 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
54         * dbxout.c (dbxout_function_end): Emit Lscope label always.
56 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
58         PR bootstrap/13770
59         * doc/install.texi: Document --with-gc.
61 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
63         * simplify-rtx.c (simplify_unary_operation): Add a missing
64         "break" statement.
66 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
68         PR tree-optimization/18663
69         * tree-ssa-dom.c (extract_range_from_cond): Return 0
70         if the type has variable bounds.
72 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
74         * gcse.c: Remove an obsolete comment.
76         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
78 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
80         * doc/extend.texi (Function Attributes) <Attribute const>: The
81         attribute "pure" is below this text, not above.
83 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
85         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
86         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
87         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
89 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
91         PR 18785
92         * langhooks.h (struct lang_hooks): Add to_target_charset.
93         * langhooks.c (lhd_to_target_charset): New function.
94         * langhooks-def.h: Declare lhd_to_target_charset.
95         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
96         (LANG_HOOKS_INITIALIZER): Update.
97         * c-common.c (c_common_to_target_charset): New function.
98         * c-common.h: Declare it.
99         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
100         c_common_to_target_charset.
102         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
103         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
104         Delete definitions.
105         * system.h: Poison them.
106         * doc/tm.texi: Don't discuss them.
107         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
108         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
109         (pp_c_char): Do not attempt to generate letter escapes for
110         newline, tab, etc.
111         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
112         * config/mips/mips.c (mips_output_ascii): Likewise.
114 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
116         PR tree-optimization/19951
117         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
118         is abnormal.
120 2005-02-19  Steven Bosscher  <stevenb@suse.de>
122         PR middle-end/19698
123         * function.h (struct function): New field `max_loop_depth'.
124         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
125         (flow_loops_find): Reset the max loop depth count before finding loops.
126         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
127         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
128         (calculate_global_regs_live): Make sure the loop will terminate
129         when the initial sets are not empty.
131 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
133         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
134         object inside.
135         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
137 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
139         PR other/19525
140         * doc/invoke.texi: Remove documentation of %M spec.
141         * gcc.c: Likewise.
142         (init_spec): Remove %M suffix from -lgcc_s.
143         (do_spec_1): Remove 'M' case.
144         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
145         to put shared libraries in the multilib directory.  Remove the
146         shlib_so_soname substitution variable.  Don't add a multilib encoding
147         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
148         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
149         SHLIB_INSTALL as well as SHLIB_LINK.
150         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
151         (SHLIB_NAME): Delete.
152         (SHLIB_DIR): New macro.
153         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
154         (SHLIB_INSTALL): Adjust accordingly.
155         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
156         * config/t-slibgcc-sld: Likewise.
157         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
158         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
159         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
160         in $(SHLIB_DIR).
161         (SHLIBUNWIND_INSTALL): Adjust accordingly.
162         * config/i386/t-nwld (SHLIB_SONAME): Delete.
163         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
164         Use @shlib_base_name@ instead of @shlib_so_name@.
165         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
166         and @shlib_base_name@.so in @multilib_dir@.
167         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
168         to the install path.
169         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
170         (SHLIB_LINK): Remove previous workaround.
171         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
172         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
173         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
174         the install path.
175         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
176         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
177         (SHLIB_INSTALL): Adjust accordingly.
178         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
179         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
180         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
181         config/t-slibgcc-elf-ver.
183 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
184             Jakub Jelinek  <jakub@redhat.com>
186         PR tree-optimization/19828
187         * tree-ssa-loop-im.c: Add a TODO comment.
188         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
189         without side-effects.
191 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
193         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
194         call fold_convert.
196 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
198         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
199         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
200         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
201         functions.
202         (ia64_reorg): Delete fixup_errata call.
203         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
204         (TARGET_SWITCHES): Delete -mb-step entry.
206 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
208         PR c/20043
209         * c-typeck.c (composite_type): Handle quals in transparent unions.
210         (type_lists_compatible_p): Likewise.
212 2005-02-18  Stan Shebs  <shebs@apple.com>
214         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
215         expressions in the .literal8 section.
217 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
219         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
221 2005-02-18  Roger Sayle  <roger@eyesopen.com>
223         * fold-const.c (constant_boolean_node): Always create values of the
224         specified type, don't bother calling truthvalue_conversion.
226 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
228         * except.c (output_function_exception_table): Call
229         assemble_external_libcall (eh_personality_libfunc).
231 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
233         PR target/19886
234         * config/ia64/ia64.h (struct machine_function): Add state_num.
235         * config/ia64/ia64.c (process_epilogue,
236         process_for_unwind_directive): Use new unwind state numbers each
237         time rather than state 1.
239 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
241         PR target/20054
242         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
243         before the "*llgt_didi" pattern.
245 2005-02-18  Jason Merrill  <jason@redhat.com>
247         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
249 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
251         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
252         (div0): Use it in place of ARM_FUNC_ALIAS.
253         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
255 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
257         PR middle-end/20030
258         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
259         access, the lower bound of the array type if it exists.
261 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
263         PR c++/20008
264         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
265         cases that are out-of-range for the index type.
267 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
269         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
270         (estimate_case_costs): Don't call convert.
271         * expmed.c (expand_shift): Likewise.
272         (make_tree): Call fold_convert instead of convert.
274 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
276         PR c++/19813
277         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
278         that ref to be marked MEM_READONLY_P doesn't have base that needs
279         constructing.
281 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
283         * genautomata.c (output_get_cpu_unit_code_func,
284         output_cpu_unit_reservation_p): Don't generate old-style function
285         definitions.
287 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
289         PR c++/20023
290         PR tree-optimization/20009
291         * convert.c (convert_to_integer): Revert 2005-02-16 change.
293         PR tree-optimization/18947
294         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
295         inline, remove all nodes that are inlined into the extern inline
296         being redefined.
298 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
300         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
301         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
302         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
303         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
304         Update copyright.
306 2005-02-17  Roger Sayle  <roger@eyesopen.com>
308         PR tree-optimization/19917
309         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
310         to be potentially trapping.
312 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
314         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
316 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
318         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
319         tem becomes a local variable which is set to the value of the
320         back end defined INITIAL_FRAME_ADDRESS macro.
321         (expand_builtin_frame_address): Omit the base parameter to
322         expand_builtin_return_addr.
323         (expand_builtin_profile_func): Likewise.
324         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
325         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
326         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
328 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
330         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
331         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
332         * config/frv/frv.c (frv_function_epilogue): Likewise.
334 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
336         * lambda-code (perfect_nestify): Remove mark/unmark
337         for rewriting hack.
338         * tree-loop-linear.c (linear_transform_loops): Add
339         rewrite_into_ssa call so that ssa is correct for
340         rewriting into loop closed.
342 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
344         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
345         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
346         BITMAP_FREE.
347         * bt-load.c (btr_def_live_range, combine_btr_defs,
348         migrate_btr_def, migrate_btr_defs): Likewise.
349         * cfgcleanup.c (thread_jump): Likewise.
350         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
351         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
352         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
353         df_rd_local_compute, df_reg_info_compute): Likewise.
354         * dominance.c (init_dom_info, free_dom_info): Likewise.
355         * flow.c (init_propagate_block_info,
356         free_propagate_block_info): Likewise.
357         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
358         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
359         modify_reg_pav): Likewise.
360         * loop-invariant.c (find_defs, find_invariant_insn,
361         find_invariants, free_inv_motion_data): Likewise.
362         * predict.c (tree_predict_by_opcode,
363         estimate_bb_frequencies): Likewise.
364         * stmt.c (expand_case): Likewise.
365         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
366         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
367         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
368         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
369         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
370         rewrite_ssa_into_ssa): Likewise.
371         * tree-optimize.c (tree_rest_of_compilation): Likewise.
372         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
373         analyze_edges_for_bb, perform_edge_inserts): Likewise.
374         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
375         * tree-sra.c (tree_sra): Likewise.
376         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
377         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
378         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
379         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
380         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
381         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
382         Likewise.
383         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
384         calculate_live_on_entry, calculate_live_on_exit,
385         build_tree_conflict_graph): Likewise.
386         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
387         record_important_candidates, set_use_iv_cost, find_depends,
388         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
389         tree_ssa_iv_optimize_finalize): Likewise.
390         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
391         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
392         tree_duplicate_loop_to_header_edge): Likewise.
393         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
394         * tree-ssa.c (verify_flow_insensitive_alias_info,
395         verify_name_tags, verify_ssa, init_tree_ssa,
396         delete_tree_ssa): Likewise.
397         * tree-ssanames.c (marked_ssa_names, init_ssanames,
398         fini_ssanames): Likewise.
399         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
401 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
403         * config/rs6000/t-rtems: Completely reworked.
405 2005-02-17  Ira Rosen  <irar@il.ibm.com>
407         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
409 2005-02-17  Ira Rosen  <irar@il.ibm.com>
411         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
412         POINTER_TYPE_P when checking that type is a pointer.
413         (vect_get_memtag): Remove.
414         (vect_address_analysis): Use POINTER_TYPE_P. Call
415         vect_object_analysis with dummy parameter for memtag.
416         (vect_object_analysis): Extract memtag (functionality that
417         used to be in vect_get_memtag and moved here). Fix printings.
418         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
419         with correct parameters. Remove call to vect_get_memtag.
421 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
423         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
424         (tree-vectorizer.o): Added missing dependencies.
426         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
427         decleration.
428         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
429         declaration in tree-vectorizer.c, now has an extern declaration in
430         tree-vectorizer.h).
431         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
432         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
433         get_vectype_for_scalar_type, vect_is_simple_use,
434         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
435         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
436         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
437         vectorizable_store, vectorizable_operation, vectorizable_assignment,
438         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
439         find_loop_location): Likewise.
441         * tree-vectorizer.c (langhooks.h): #include removed.
442         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
443         moved to tree-vectorized.h.
444         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
445         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
446         get_vectype_for_scalar_type, vect_is_simple_use,
447         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
448         vect_supportable_dr_alignment, new_loop_vec_info,
449         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
450         vect_set_verbosity_level, find_loop_location): Likewise.
452         (vect_analyze_loop): Function externalized. Declaration moved to
453         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
454         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
455         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
456         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
457         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
458         vect_enhance_data_refs_alignment, vect_analyze_operations,
459         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
460         vect_stmt_relevant_p, vect_get_loop_niters,
461         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
462         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
463         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
464         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
465         vect_get_memtag): Likewise.
467         (vectorizable_load): Function externalized. Declaration moved to
468         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
469         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
470         vect_transform_loop): Likewise.
471         (vect_transform_stmt): Moved to tree-vect-transform.c.
472         (vect_align_data_ref, vect_create_destination_var,
473         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
474         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
475         vect_get_vec_def_for_operand, vect_init_vector,
476         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
477         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
478         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
479         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
480         vect_do_peeling_for_loop_bound): Likewise.
482         * tree-vect-analyze.c: New file.
483         * tree-vect-transform.c: New file.
485 2005-02-17  Jason Merrill  <jason@redhat.com>
487         PR mudflap/19319, c++/19317
488         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
489         slot explicit.
491 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
493         * doc/install.texi (Specific): Update link for Darwin-specific
494         tool binary site.
496 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
498         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
499         constant_boolean_node.
501 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
503         PR target/19019
504         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
505         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
507 2005-02-16  Richard Henderson  <rth@redhat.com>
509         PR 19920
510         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
511         with W_TYPE_SIZE.
512         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
513         replace uses with Wtype_MAXp1_F.
514         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
515         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
516         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
517         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
518         and HAVE_TFMODE as appropriate.
519         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
520         (__floatdisf): Likewise.
521         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
522         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
523         (Wtype_MAXp1_F): New.
524         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
525         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
527 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
529         * PR target/19162
530         * arm.c (arm_apply_result_size): New function.
531         * arm.h (APPLY_RESULT_SIZE): Define.
532         * arm-protos.h (arm_apply_result_size): Add prototype.
533         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
534         (movxf): New expand.
535         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
536         (call_value_symbol): Remove predicate for operand 0.
537         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
538         (untyped_call): Rework to correclty return values for any type.
539         (untyped_return): New expand.
540         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
542 2005-02-16  Stan Shebs  <shebs@apple.com>
544         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
545         * config/rs6000/t-darwin8: New, for 64-bit multilib.
547 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
549         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
550         configure settings on Solaris 7 and later.
552 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
554         PR tree-optimization/19865
555         * tree-optimize.c (init_tree_optimization_passes): Run
556         pass_may_alias after pass_sra.
558 2005-02-16  Richard Henderson  <rth@redhat.com>
559             Stuart Hastings  <stuart@apple.com>
561         PR debug/19521
562         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
563         Do nothing if debug info suppressed for this function.
564         (dbxout_begin_function): Early exit if debug info suppressed for
565         this function.
567 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
569         PR target/20007
570         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
571         find_basic_blocks.
572         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
574         PR tree-optimization/19967
575         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
576         expand_builtin_strchr, expand_builtin_strrchr): Take a new
577         argument TYPE.  Adjust calls to fold_builtin_XXX.
578         (expand_builtin, fold_builtin_1): Adjust calls to
579         expand_builtin_XXX.
580         (fold_builtin_strchr, fold_builtin_strpbrk,
581         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
582         result to a requested type TYPE.
584 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
586         PR middle-end/19857
587         * fold-const.c (fold): Don't optimize (T)(x & cst) to
588         (T)x & (T)cst if (T)cst overflows.
589         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
590         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
592 2005-02-15  Jeff Law  <law@redhat.com>
594         * gcse.c (blocks_with_calls): New bitmap.
595         (alloc_gcse_mem): Allocate it.
596         (free_gcse_mem): Free it.
597         (clear_modifY_mem_tables): Clear it.
598         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
599         when we encounter CALL_INSNs.
600         (compute_transp, case MEM): Handle blocks with calls separate
601         from blocks without calls.  Use bitmap iterators rather than
602         FOR_EACH_BB.
604 2005-02-15  Peter O'Gorman  <peter@pogma.com>
606         PR bootstrap/18810
607         * mklibgcc.in (vis_hide): Use a temporary object file, not
608         -o /dev/null.
610 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
612         PR target/19924
613         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
614         access optimization.
616 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
617             Alan Modra  <amodra@bigpond.net.au>
619         PR target/19019
620         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
621         (_xlqsub): Rename to __gcc_qsub.
622         (_xlqmul): Rename to __gcc_qmul.
623         (_xlqdiv): Rename to __gcc_qdiv.
624         Provide versioned symbol aliases with old names.
625         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
626         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
627         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
628         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
629         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
631 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
633         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
634         Fold ~(A - 1) and ~(A + -1) to -A.
636 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
638         PR pch/14940
639         PR target/19300
640         * config/host-linux.c (linux_gt_pch_use_address): Copy from
641         config/pa/pa-host.c:pa_gt_pch_use_address.
643 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
645         * tree-vn.c (get_value_handle): Make sure that given an
646         is_gimple_min_invariant expression, we always return it.
648 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
650         * passes.c (rest_of_handle_gcse): Fix a comment.
652 2005-02-15  Jeff Law  <law@redhat.com>
654         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
655         bitmap.
656         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
657         (canon_list_insert, record_last_mem_set_info): Similarly.
658         (clear_modify_mem_tables): Similarly.
660 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
662         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
663         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
664         config/mips/mips.md, config/rs6000/aix.h,
665         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
667 2005-02-15  Richard Henderson  <rth@redhat.com>
669         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
670         call to be best_edge.
672 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
674         * basic-block.h: Adjust the prototype for find_basic_blocks.
675         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
676         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
677         find_basic_blocks.
679         * flow.c (recompute_reg_usage): Remove all arguments.
680         * passes.c (rest_of_compilation): Adjust the call to
681         recompute_reg_usage.
682         * rtl.h: Adjust the prototype for recompute_reg_usage.
684 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
686         * tree-dump.c (dump_files): Update to reflect new member
687         of dump_file_info.
688         (dump_register): Add new argument.
689         Set glob name.
690         (dump_switch_p_1): Check against glob name if doglob was passed.
691         (dump_switch_p): Check against regular first, then glob if
692         we didn't have any hits on the dump name.
693         * tree-optimize.c (register_one_dump_file):
694         Pass in glob name as well.
695         * tree-pass.h (struct dump_file_info): Add glob
696         member.
698 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
700         PR preprocessor/16323
701         * doc/invoke.texi: Document that -Wendif-labels is on by default.
703 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
705         PR target/19019
706         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
707         (trunctfdf2_internal1): New.
708         (trunctfdf2_internal2): Renamed from trunctfdf2.
710 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
712         PR tree-optimization/19853
713         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
715 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
717         * passes.c (rest_of_handle_loop_optimize): Remove calls to
718         delete_dead_jumptables and cleanup_cfg.
720 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
722         * reload.c (find_reloads): Swap address_reloaded flags when
723         swapping commutative operands.
725 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
727         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
728         Use standard_iv_increment_position for computing the bsi position
729         for create_iv.
730         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
731         the bsi position.
733 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
735         PR target/17428
736         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
737         life range of hard registers.
738         * value-prof.c (insn_prefetch_values_to_profile): Only
739         scan normal insns.
741         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
742         profile in libcalls.
744 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
746         * bitmap.h (bitmap_and_compl_into): Return bool.
747         * bitmap.c (bitmap_and_compl_into): Return changed flag.
749 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
751         PR tree-optimization/19944
752         * fold-const.c (fold): Re-add ABS_EXPR folding.
754 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
756         PR target/19019
757         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
758         {TARGET,MASK}_XL_COMPAT.
759         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
760         MASK_XL_COMPAT.
761         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
762         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
763         TARGET_XL_COMPAT.
764         (rs6000_arg_partial_bytes): Same.
765         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
766         and XL compatibility enabled.
767         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
768         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
769         test to final condition.
770         (cmptf_internal2): New.
771         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
772         xl-compat.  Add TFmode information to description.
774 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
776         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
778 2005-02-13  Jason Merrill  <jason@redhat.com>
780         PR c++/16405
781         * fold-const.c (fold_indirect_ref_1): Split out from...
782         (build_fold_indirect_ref): Here.
783         (fold_indirect_ref): New fn.
784         * tree.h: Declare it.
785         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
786         (gimplify_modify_expr_rhs): Likewise.
787         (gimplify_expr): Likewise.
789 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
791         PR tree-optimization/14303
792         PR tree-optimization/15784
793         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
794         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
795         ABS_EXPR<x> != 0 to x != 0.
797 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
799         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
800         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
801         spelling conventions.
803         * passes.c (rest_of_handle_gcse): Don't run cse_main and
804         delete_trivially_dead_insns too many times.
806         * passes.c (rest_of_handle_gcse): Remove dead assignments to
807         tem and tem2.
809 2005-02-12  Ira Rosen  <irar@il.ibm.com>
811         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
812         (vect_is_simple_iv_evolution): Remove redundant parameter
813         and step check.
814         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
815         without last parameter.
816         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
817         Return pointer step. Call vect_is_simple_iv_evolution without
818         last parameter. Check only that the step is multiple of size
819         type. Remove stmt_vinfo updates.
820         (vect_get_memtag_and_dr): Remove.
821         (vect_get_memtag): New function.
822         (vect_address_analysis): New function.
823         (vect_object_analysis): New function.
824         (vect_analyze_data_refs): Call vect_object_analysis and
825         vect_get_memtag. Update stmt_vinfo fields.
827 2005-02-12  Ira Rosen  <irar@il.ibm.com>
829         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
830         exist and are objects. Remove checks for pointer.
831         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
832         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
833         (vect_create_data_ref_ptr): Likewise.
834         (vect_base_addr_differ_p): New function.
835         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
836         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
837         Don't set the DR_BASE_NAME field of data-ref.
838         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
840 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
842         * optabs.h (enum optab_index): Add new OTI_ldexp.
843         (ldexp_optab): Define corresponding macro.
844         * optabs.c (init_optabs): Initialize ldexp_optab.
845         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
846         patterns.
847         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
848         using ldexp_optab.
849         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
850         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
852         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
853         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
854         intrinsics.
856 2005-02-12  Ira Rosen  <irar@il.ibm.com>
858         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
859         to base_address.
860         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
861         stmt_vec_info.
862         (vect_get_base_and_offset): Always return an address.
863         (vect_create_addr_base_for_vector_ref): Remove treatment for
864         different data reference types.
865         (vect_compute_data_ref_alignment): Rename base to base_address in
866         stmt_vec_info. Get the object in order to force its alignment.
867         (vect_get_memtag_and_dr): Rename base to base_address in
868         stmt_vec_info. Extract the object for memtag analysis.
870 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
872         PR regression/19898.
873         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
874         changes cc_status, use apply modified_in_p to part of cc_status
875         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
876         body.
878 2005-02-11  Richard Henderson  <rth@redhat.com>
880         * tree-complex.c (expand_complex_libcall): New.
881         (expand_complex_multiplication): Use it for c99 compliance.
882         (expand_complex_division): Likewise.
883         * fold-const.c (fold_complex_add, fold_complex_mult): New.
884         (fold): Call them.
885         * builtins.c (built_in_names): Remove const.
886         * tree.c (build_common_builtin_nodes): Build complex arithmetic
887         builtins.
888         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
889         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
890         (built_in_names): Remove const.
891         * c-common.c (c_common_type_for_mode): Handle complex modes.
892         * flags.h, toplev.c (flag_complex_method): Rename from
893         flag_complex_divide_method.
894         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
895         __mulsc3, __muldc3, __mulxc3, __multc3): New.
896         * libgcc2.h: Declare them.
897         * libgcc-std.ver: Export them.
898         * mklibgcc.in (lib2funcs): Build them.
900 2005-02-11  Steven Bosscher  <stevenb@suse.de>
902         PR tree-optimization/19876
903         Partially revert my change from 2005-01-14
904         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
905         (compute_antic): ...and remove the loop here.
907 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
909         PR middle-end/19858
910         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
911         is number of inner's bits, avoid creating a BIT_FIELD_REF.
913         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
914         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
916 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
918         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
919         offsets for the big-endian 32-bit case.
921 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
923         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
925 2005-02-11  Dale Johannesen  <dalej@apple.com>
927         * cselib.c (cselib_process_insn):  Clear out regs where
928         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
929         * reload.c (find_equiv_reg): Ditto.
931 2005-02-11  Ian Lance Taylor  <ian@airs.com>
933         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
934         with no elements.
936         * tree.c (build_function_type_list): Work correctly if there are
937         no arguments.
939 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
941         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
942         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
943         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
944         TARGET_ZARCH instead of TARGET_64BIT.
946 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
948         * config/rs6000/t-rtems:
949         (MULTILIB_OPTIONS): Remove mcpu=602.
950         (MUTLILIB_DIRNAMES): Remove m602.
951         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
952         Let mcpu=602 match mcpu=603.
953         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
955 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
957         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
958         signal trampolines.
960 2005-02-10  David Daney  <ddaney@avtrex.com>
962         * config/alpha/linux-unwind.h: Add exception clause to copyright.
963         * config/i386/linux-unwind.h: Likewise.
964         * config/ia64/linux-unwind.h: Likewise.
965         * config/mips/linux-unwind.h: Likewise.
966         * config/pa/linux-unwind.h: Likewise.
967         * config/rs6000/linux-unwind.h: Likewise.
968         * config/s390/linux-unwind.h: Likewise.
969         * config/sh/linux-unwind.h: Likewise.
970         * config/sparc/linux-unwind.h: Likewise.
972 2005-02-10  Steven Bosscher  <stevenb@suse.de>
974         PR tree-optimization/17549
975         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
976         TER to replace a DEF with its expression if the DEF and the
977         rhs of the expression we replace into have the same root
978         variable.
980 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
982         * config/mips/mips.md: Fix the placement of the match_scratch in the
983         lea64 peephole2.
985 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
987         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
988         Fix comment typos.
990 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
992         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
993         (strip_offset): Handle addresses.
994         (add_address_candidates): Use strip_offset.
995         (difference_cost): Reflect strip_offset change.
996         (force_var_cost, difference_cost): Strip nops.
998 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
1000         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
1002         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
1003         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
1004         config/cris/cris-protos.h, config/cris/cris.c: Update
1005         copyright.
1007 2005-02-10  Jeff Law  <law@redhat.com>
1009         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
1010         (lookup_avail_expr): Similarly.
1012 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
1014         * builtins.c (fold_builtin_powi): New function.
1015         (fold_builtin_1): Call it.
1017 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1019         PR documentation/19309
1020         * doc/cpp.texi: The __GNUC__ and related predefined macros
1021         are also defined for the "standalone" cpp.
1022         Some non-GCC compilers may also define __GNUC__.
1024 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
1026         PR c/19342
1027         * c-typeck.c (common_type): New routine.  Old common_type renamed
1028         to...
1029         (c_common_type): ...this.
1030         (build_conditional_expr, build_binary_op): Use c_common_type instead
1031         of common_type.
1033 2005-02-10  Steven Bosscher  <stevenb@suse.de>
1035         * doc/md.texi: Replace @samp{length} with @code{length}.
1037 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
1039         PR tree-optimization/18687
1040         * tree-flow.h (find_loop_niter): Declare.
1041         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
1042         Try using scev even for loops with more than one exit.
1043         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
1044         (struct ivopts_data): Added niters field.
1045         (struct nfe_cache_elt): New.
1046         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
1047         functions.
1048         (tree_ssa_iv_optimize_init): Initialize niters cache.
1049         (determine_number_of_iterations): Removed.
1050         (find_induction_variables): Do not call determine_number_of_iterations.
1051         Access niters for single exit through niter_for_single_dom_exit.
1052         (add_iv_outer_candidates): Access niters for single exit through
1053         niter_for_single_dom_exit.
1054         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
1055         number_of_iterations_cond.
1056         (iv_period): New function.
1057         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
1058         (may_replace_final_value): Take data argument.  Use
1059         niter_for_single_dom_exit.
1060         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
1061         (rewrite_use_compare): Pass data to may_eliminate_iv.
1062         (rewrite_use_outer): Pass data to may_replace_final_value.
1063         (free_loop_data): Clean up the niters cache.
1064         (tree_ssa_iv_optimize_finalize): Free the niters cache.
1065         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
1066         * tree-ssa-loop-niter.c (find_loop_niter): New function.
1067         (find_loop_niter_by_eval): Use tree_int_cst_lt.
1068         (num_ending_zeros): Moved to tree.c.
1069         * tree.h (num_ending_zeros): Declare.
1070         * tree.c (num_ending_zeros): Moved from tree.c.
1072 2005-02-09  Richard Henderson  <rth@redhat.com>
1074         * builtins.c (DEF_BUILTIN): Add COND argument.
1075         * tree.h (DEF_BUILTIN): Likewise.
1076         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
1077         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
1078         match.
1079         (DEF_BUILTIN_STUB): New.
1080         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
1081         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
1082         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
1083         * c-common.c (DEF_BUILTIN): Add COND argument.
1084         * tree.c (local_define_builtin): New.
1085         (build_common_builtin_nodes): New.
1087 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1089         * fold-const.c (fold_strip_sign_ops): New function to simplify a
1090         floating point expression ignoring the sign of the result.
1091         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1092         (fold) <MULT_EXPR>: Use it to simplify x*x.
1093         * tree.h (fold_strip_sign_ops): Prototype here.
1094         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1095         argument.  Use fold_strip_sign_ops to simplify the first argument.
1096         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
1097         first argument when the second argument is an even integer
1098         constant, but only with -funsafe_math_optimizations.
1099         (fold_builtin_1): Update call to fold_builtin_copysign.
1101 2005-02-09  Ian Lance Taylor  <ian@airs.com>
1103         PR middle-end/19583
1104         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1105         just check whether EH_FILTER_FAILURE falls through.
1107 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1109         * gcc/haifa-sched.c (schedule_block): Make queued sched group
1110         insns return to ready list in the next turn.
1112 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1114         PR middle-end/19402
1115         * builtins.def: New __builtin_powi[lf].
1116         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1117         (expand_builtin_powi): New function.
1118         (expand_builtin): Dispatch to expand_builtin_powi.
1119         * libgcc2.h: Add prototypes for __builtin_powi[lf].
1120         * libgcc2.c: Add __builtin_powi[lf] implementation.
1121         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1122         * optabs.h: Add powi_optab.
1123         * optabs.c (init_optabs): Initialize powi_optab.
1124         * doc/extend.texi: Document __builtin_powi[lf].
1126 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
1128         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1129         exists.
1131 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1133         PR middle-end/19854
1134         * fold-const.c (try_move_mult_to_index): Remove redundant
1135         type argument.  Create ADDR_EXPR with correct type.
1136         (fold): Update callers of try_move_mult_to_index.  Convert
1137         result to the appropriate type.
1139 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1141         PR target/19597
1142         * config/avr/avr.c (default_rtx_costs): Delete.
1143         (avr_operand_rtx_cost): New function.
1144         (avr_rtx_costs): Completely rewrite.
1146 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
1148         PR target/19806
1149         * config/cris/cris.c (in_code): New variable.
1150         (cris_output_addr_const): Now a static function, a wrapper for
1151         output_addr_const.
1152         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1153         case from old cris_output_addr_const.
1154         (cris_asm_output_label_ref): Similar for LABEL_REF.
1155         (cris_output_addr_const_extra): Similar for UNSPEC.
1156         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1157         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1158         * config/cris/cris-protos.h (cris_output_addr_const): Remove
1159         declaration.
1160         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1161         (cris_asm_output_label_ref): Declare.
1163 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
1165         PR preprocessor/19801
1166         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1167         filenames that changed when libcpp was moved to the toplevel.
1169 2005-02-07  Roger Sayle  <roger@eyesopen.com>
1171         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1172         zero extensions of BImode operands.  Call lowpart_subreg instead
1173         of gen_lowpart_common and gen_lowpart_SUBREG.
1175 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1177         PR ada/19489
1178         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1179         * configure.ac: Set cc_for_cross_gnattools.
1180         * configure: Regenerate.
1182 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
1184         PR target/19803
1185         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1187 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1189         PR debug/19327
1190         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1191         of nested functions.
1193 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
1195         * doc/extend.texi: Document deprecated extensions allowing
1196         static floating-point members to have initializers and allowing
1197         floating-point literals in integral constant expressions.
1199 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1201         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1202         config/darwin7.h, config/mips/mips.c,
1203         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1204         Update copyright.
1206         * cse.c: Update comments.
1208 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
1210         PR middle-end/19775
1211         * builtins.c (fold_builtin_sqrt): Transform
1212         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1213         pow(x,y*0.5).
1215 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
1216             Dorit Naishlos  <dorit@il.ibm.com>
1218         * doc/invoke.texi (ftree-vectorizer-verbose): New.
1219         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1220         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1221         was added.
1222         * tree.h (vect_set_verbosity_level): New extern function declaration
1223         added.
1224         * tree-vectorizer.h (verbosity_levels): New enum type.
1225         * tree-vectorizer.c (vect_debug_stats): Function removed.
1226         (vect_debug_details): Likewise.
1227         (vect_verbosity_level): Global variable was defined and initialized.
1228         (vect_dump): Global variable definition.
1229         (vect_print_dump_info): New function.
1230         (vect_set_dump_settings): New function.
1231         (vect_set_verbosity_level): New function.
1232         (vectorize_loops): Add call to vect_set_dump_settings.
1234         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1235         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1236         (slpeel_tree_peel_loop_to_edge): Likewise.
1238         (vect_analyze_offset_expr): Call to vect_print_dump_info with
1239         appropriate verbosity level instead of call to vect_debug_details
1240         or vect_debug_stats.
1241         (vect_get_base_and_offset):
1242         (vect_create_addr_base_for_vector_ref):
1243         (get_vectype_for_scalar_type):
1244         (vect_create_data_ref_ptr):
1245         (vect_init_vector):
1246         (vect_get_vec_def_for_operand):
1247         (vect_finish_stmt_generation):
1248         (vectorizable_assignment):
1249         (vectorizable_operation):
1250         (vectorizable_store):
1251         (vectorizable_load):
1252         (vect_transform_stmt):
1253         (vect_update_ivs_after_vectorizer):
1254         (vect_do_peeling_for_loop_bound):
1255         (vect_update_inits_of_drs):
1256         (vect_do_peeling_for_alignment):
1257         (vect_transform_loop):
1258         (vect_is_simple_use):
1259         (vect_analyze_operations):
1260         (vect_is_simple_iv_evolution):
1261         (vect_analyze_scalar_cycles):
1262         (vect_analyze_data_ref_dependence):
1263         (vect_analyze_data_ref_dependences):
1264         (vect_compute_data_ref_alignment):
1265         (vect_enhance_data_refs_alignment):
1266         (vect_analyze_data_refs_alignment):
1267         (vect_analyze_data_ref_access):
1268         (vect_analyze_data_ref_accesses):
1269         (vect_analyze_pointer_ref_access):
1270         (vect_get_memtag_and_dr):
1271         (vect_analyze_data_refs):
1272         (vect_mark_relevant):
1273         (vect_stmt_relevant_p):
1274         (vect_mark_stmts_to_be_vectorized):
1275         (vect_can_advance_ivs_p):
1276         (vect_get_loop_niters):
1277         (vect_analyze_loop_form):
1278         (vect_analyze_loop):
1279         (vectorize_loops): Likewise.
1281         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1282         (vect_update_inits_of_drs):
1283         (vect_do_peeling_for_alignment):
1284         (vect_transform_loop):
1285         (vect_analyze_operations):
1286         (vect_analyze_scalar_cycles):
1287         (vect_analyze_data_ref_dependences):
1288         (vect_analyze_data_refs_alignment):
1289         (vect_analyze_data_ref_accesses):
1290         (vect_analyze_data_refs):
1291         (vect_mark_stmts_to_be_vectorized):
1292         (vect_get_loop_niters):
1293         (vect_analyze_loop_form):
1294         (vect_analyze_loop): Likewise.
1295         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1297 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
1299         PR bootstrap/19796
1300         Revert:
1301         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
1302         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1303         either -ffast-math or -funsafe-math-optimizations is in use.
1305         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
1306         * config/mips/irix-csr.c: New file.
1307         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1308         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1309         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1310         executables.
1312 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
1314         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
1315         redundant, incorrect definitions.
1317         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
1318         expand.
1319         ("*tls_indirect_call"): New, reference hard regs directly.
1320         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
1322 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1324         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
1325         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
1327 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1329         PR rtl-optimization/19800
1330         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
1331         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
1332         gen_lowpart.
1334 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1336         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
1338 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
1340         PR other/17135
1341         * doc/invoke.texi: Correct documentation of -freorder-functions.
1343 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1345         PR other/14402
1346         * doc/invoke.texi: Don't mention gccbug.
1348 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1349             Andrew Pinski  <pinskia@physics.uc.edu>
1350             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
1352         * simplify-rtx.c (simplify_relational_operation_1): Simplify
1353         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
1354         into just (zero_extract:SI FOO (const_int 1) BAR).
1356 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1358         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
1359         macro locally.  Don't give last revision date.  Use GCC version
1360         number from gcc-common.texi.
1361         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
1362         revision date.  Use GCC version number from gcc-common.texi.
1363         Describe being a library as current state rather than as 3.x
1364         history.
1365         * doc/gcc.texi: Remove last update date.
1366         * doc/gccint.texi: Likewise.  Update copyright dates.
1367         * doc/install.texi: Update copyright dates.
1369 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1371         PR other/7549
1372         * doc/invoke.texi: Mention for each option included in -Wall that
1373         it is included in -Wall.
1374         * doc/gcc.texi: Update copyright and last modification date.
1376 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1378         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
1379         unnecessary cast to original induction variable increments.
1381 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1383         PR tree-optimization/18219
1384         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
1385         in distributed form.
1387 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
1389         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
1390         Set bitpos and offset later in the function.  Do nothing if the
1391         target is a register and if the bitfield lies completely outside
1392         that register.
1393         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
1394         here.  Return an uninitialised register if the source value is stored
1395         in a register and the bitfield lies completely outside that register.
1397 2005-02-06  Steven Bosscher  <stevenb@suse.de>
1399         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
1400         not SET_DEST.
1402 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
1404         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
1406 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
1408         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
1409         * config/darwin8.h: New.
1410         * config/darwin7.h: Update comment.
1412 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1413             Dorit Naishlos  <dorit@il.ibm.com>
1415         * tree-vectorizer.h (LOC): New type.
1416         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
1417         (loop_line_number): New field in struct _loop_vec_info.
1418         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
1420         * tree-vectorizer.c (input.h): Included.
1421         (find_loop_location): New function.
1422         (vect_debug_stats): Argument changed from loop to LOC. Computation of
1423         loop line number removed.
1424         (vect_debug_details): Likewise.
1425         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
1427         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
1428         call to vect_debug_details/stats changed from loop to loop_loc.
1429         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1430         (slpeel_tree_peel_loop_to_edge): Likewise.
1432         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
1433         changed from NULL to UNKNOWN_LOC.
1434         (vect_get_base_and_offset):
1435         (vect_create_addr_base_for_vector_ref):
1436         (get_vectype_for_scalar_type):
1437         (vect_create_data_ref_ptr):
1438         (vect_init_vector):
1439         (vect_get_vec_def_for_operand):
1440         (vect_finish_stmt_generation):
1441         (vectorizable_assignment):
1442         (vectorizable_operation):
1443         (vectorizable_store):
1444         (vectorizable_load):
1445         (vect_transform_stmt):
1446         (vect_update_ivs_after_vectorizer):
1447         (vect_do_peeling_for_loop_bound):
1448         (vect_do_peeling_for_alignment):
1449         (vect_transform_loop):
1450         (vect_is_simple_use):
1451         (vect_analyze_operations):
1452         (vect_is_simple_iv_evolution):
1453         (vect_analyze_scalar_cycles):
1454         (vect_analyze_data_ref_dependences):
1455         (vect_compute_data_ref_alignment):
1456         (vect_enhance_data_refs_alignment):
1457         (vect_analyze_data_ref_access):
1458         (vect_analyze_data_ref_accesses):
1459         (vect_analyze_pointer_ref_access):
1460         (vect_get_memtag_and_dr):
1461         (vect_analyze_data_refs):
1462         (vect_mark_relevant):
1463         (vect_stmt_relevant_p):
1464         (vect_mark_stmts_to_be_vectorized):
1465         (vect_can_advance_ivs_p):
1466         (vect_get_loop_niters):
1467         (vect_analyze_loop):
1468         (vectorize_loops): Likewise.
1470         (vectorizable_load): Argument in call to vect_debug_details/stats
1471         changed from loop to LOOP_LOC (loop_vinfo).
1472         (vect_transform_loop):
1473         (vect_analyze_operations):
1474         (vect_analyze_scalar_cycles):
1475         (vect_analyze_data_ref_dependence):
1476         (vect_enhance_data_refs_alignment):
1477         (vect_analyze_data_ref_accesses):
1478         (vect_analyze_pointer_ref_access):
1479         (vect_analyze_data_refs):
1480         (vect_analyze_loop): Likewise.
1482         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
1483         changed from loop to loop_loc.
1485         (vect_enhance_data_refs_alignment): Removed unused variable loop.
1487 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1488             Dorit Naishlos  <dorit@il.ibm.com>
1490         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
1491         declaration added.
1492         (vect_analyze_data_ref_dependences): Likewise.
1494         (vect_is_simple_use): Argument changed from loop structure to
1495         loop_vect_info structure.
1496         (vect_can_advance_ivs_p): Likewise.
1497         (vect_create_index_for_vector_ref): Likewise.
1498         (vect_update_ivs_after_vectorizer): Likewise.
1499         (new_stmt_vec_info): Likewise.
1501         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
1502         changed from loop to loop_vinfo.
1503         (vect_create_data_ref_ptr): First argument in call to
1504         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
1505         (vectorizable_assignment): Second argument in call to vect_is_simple_use
1506         was changed from loop to loop_vinfo.
1507         (vectorizable_operation): Likewise.
1508         (vectorizable_store): Likewise.
1509         (vect_mark_stmts_to_be_vectorized): Likewise.
1510         (vect_do_peeling_for_loop_bound): First argument in call to
1511         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
1512         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
1513         was changed from loop to loop_vinfo.
1514         (vect_analyze_data_ref_dependences): Third argument in call to
1515         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
1517         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
1518         (vect_create_data_ref_ptr): Likewise.
1519         (vect_init_vector): Likewise.
1520         (vect_get_vec_def_for_operand): Likewise.
1521         (vectorizable_assignment): Likewise.
1522         (vectorizable_operation): Likewise.
1523         (vectorizable_store): Likewise.
1524         (vectorizable_load): Likewise.
1525         (vect_update_ivs_after_vectorizer): Likewise.
1526         (vect_is_simple_use): Likewise.
1527         (vect_analyze_data_ref_dependence): Likewise.
1528         (vect_analyze_pointer_ref_access): Likewise.
1529         (vect_can_advance_ivs_p): Likewise.
1531         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
1532         before _stmt_vec_info.
1533         (_stmt_vec_info): Loop field replaced by loop_vec_info.
1534         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
1535         (new_stmt_vec_info): Argument changed from loop structure to
1536         loop_vect_info structure
1538         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
1539         (vect_analyze_offset_expr): Avoid 80 columns overflow.
1540         (vect_create_addr_base_for_vector_ref): Likewise.
1541         (vect_analyze_pointer_ref_access): Likewise.
1543 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1545         PR tree-opt/19768
1546         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
1547         phi flag if the phi is abnormal.
1549 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1551         PR tree-opt/19736
1552         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
1553         information for the new statement.
1555 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1557         PR driver/19117
1558         * gcc.c (main): Include the target in -v output.
1560 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
1562         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
1563         Do not drop the extend if we'd have to add a paradoxical subreg
1564         later.  Include optabs.h and insn-codes.h.
1565         * Makefile.in (combine.o): Depend on $(OPTABS_H).
1567 2005-02-02  Roger Sayle  <roger@eyesopen.com>
1569         PR middle-end/19405
1570         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
1571         * fold-const.c (const_binop): Avoid constant folding floating
1572         point operations in modes that use composite representations.
1573         * simplify-rtx.c (simplify_binary_operation): Likewise.
1575 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
1577         * config/rs6000/altivec.md (altivec_dst): Make the first operand
1578         a REG, not a MEM.
1579         (altivec_dstt): Likewise.
1580         (altivec_dstst): Likewise.
1581         (altivec_dststt): Likewise.
1582         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
1583         of first operand.
1585 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1587         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
1588         EXPR_LOCUS from orig_cond to the new cond_stmt.
1589         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
1590         the new vec_stmt.
1592 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1594         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
1595         standard_iv_increment_position. Remove call to bsi_next
1596         (no need to bump the iterator anymore).
1597         (vect_create_index_for_vector_ref): Call
1598         standard_iv_increment_position. Remove second function argument.
1599         (vect_finish_stmt_generation): Remove call to bsi_next
1600         (no need to bump the iterator anymore).
1601         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
1602         to vect_create_index_for_vector_ref.
1604 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1606         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
1607         phis are used out of the loop.
1609 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1611         PR c/17807
1612         * c-decl.c (undef_nested_function): New variable.
1613         (pop_scope): Diagnose undefined nested functions.
1614         (finish_function): Don't attempt cgraph processing or genericizing
1615         if current top-level function contained an undefined nested
1616         function.  Reset undef_nested_function at the end of a top-level
1617         function.
1619 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
1621         * tree.c (build_int_cst_type): Take sign of the value into account
1622         when deciding whether sign extend the value.
1624 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1626         PR c/18502
1627         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
1628         (cpp_options, cc1_options): Change %{std*&ansi} to
1629         %{std*&ansi&trigraphs}.
1631 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1633         * cse.c: Update comments.
1635 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
1637         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
1638         arguments go on the stack.  Do not put complex doubles in odd/even
1639         pairs.
1641 2005-02-02  Steven Bosscher  <stevenb@suse.de>
1643         * doc/invoke.texi: Update the options enabled at -O1, -O2,
1644         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
1645         -ftree-pre, and -fthread-jumps.
1647 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
1649         PR tree-optimization/19578
1650         * tree-flow.h (modified_noreturn_calls): Declare.
1651         (noreturn_call_p): Declare.
1652         * tree-flow-inline.h (noreturn_call_p): New function.
1653         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
1654         * tree-cfg.c (modified_noreturn_calls): New variable.
1655         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
1656         that contain a mid-block noreturn call.
1657         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
1659 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1661         * df.c (df_def_record_1, df_uses_record): Don't use
1662         DF_FOR_REGALLOC.
1663         * df.h (DF_FOR_REGALLOC): Remove.
1665 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1667         PR c/19435
1668         * c-typeck.c (really_start_incremental_init): Reset
1669         constructor_max_index for arrays of incomplete type.
1671 2005-02-02  Jeff Law  <law@redhat.com>
1673         * gcse.c (struct reg_set): Store the block index where the register
1674         was set rather than the setting insn.
1675         (record_one_set, compute_transp): Corresponding changes.
1676         (pre_insert_copy_insn): Do not call replace_one_set.
1677         (replace_one_set): Remove.
1679 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1681         PR other/15514
1682         * doc/gcov.texi: Fix typo.
1684 2005-02-01  Richard Henderson  <rth@redhat.com
1686         PR target/19680
1687         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
1688         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
1689         type to bool.
1690         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
1691         * config/i386/i386-protos.h: Update.
1693 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1695         PR tree-optimization/19217
1696         * tree-cfg.c (verify_expr): Use the data field to see if TP was
1697         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
1698         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
1699         that it is walking a PHI node.
1701 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
1703         * doc/extend.texi (Nested Functions): Update.
1705 2005-02-01  Richard Henderson  <rth@redhat.com>
1707         PR 19696
1708         * optabs.c (expand_copysign_absneg): Export.
1709         * optabs.h (expand_copysign_absneg): Declare.
1710         * config/rs6000/rs6000.md (copysigntf3): New.
1712 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1714         PR tree-optimization/19633
1715         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
1716         * tree-ssa-alias.c (init_alias_info): Initialize.
1717         (merge_pointed_to_info): Set.
1718         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
1719         (dump_points_to_info_for): Show value of pt_null.
1720         (struct count_ptr_d): Declare.
1721         (find_ptr_dereference): Remove.
1722         (ptr_is_dereferenced_by): Remove.
1723         (count_ptr_derefs): New local function.
1724         (count_uses_and_derefs): New local function.
1725         (compute_points_to_and_addr_escape): Call it.  If the number
1726         of dereferences is greater than zero, mark the pointer as
1727         dereferenced.  If there are fewer dereferences than uses of
1728         the pointer, the pointer's value escapes.
1730 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1732         PR tree-optimization/19670
1733         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
1734         here...
1735         (verify_use): ... set it here, instead.
1737 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
1739         * doc/sourcebuild.texi (Test directives): Fix formatting.
1741         * doc/sourcebuild.texi (Test directives): Describe selector
1742         expressions.
1744 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
1746         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
1747         specific 64-bit CPUs.
1749 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
1751         PR target/16201
1752         * arm.c (arm_eliminable_register): New function.
1753         (adjacent_mem_locations): Don't allow eliminable registers.  Use
1754         HOST_WIDE_INT for address offsets.
1755         * arm-protos.h (arm_eliminable_register): Add prototype.
1757 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1759         PR optimization/15242
1760         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
1761         * basic-block.h (duplicate_computed_gotos): Add prototype.
1762         * bb-reorder.c (duplicate_computed_gotos): New function to
1763         duplicate sufficiently small blocks ending in a computed jump.
1764         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
1765         if not optimizing for size.
1766         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
1767         never do tail merging for blocks ending in a computed jump.
1768         * doc/invoke.texi: Document the max-goto-duplication-insns param.
1770 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1772         Patch from Richard Sandiford <rsandifo@redhat.com>
1773         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
1774         from inheriting a subreg equivalence with a non-spill register.
1776         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
1778 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
1780         * config/frv/frv.c (movcc_fp_destination_operand): New.
1781         (gpr_or_memory_operand): Fix typo in comment.
1782         (gpr_or_memory_operand_with_scratch): New.
1783         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
1784         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
1785         movcc_fp_destination_operand.
1786         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
1787         Legitimize memory addresses using a scratch register.
1789 2005-01-31  Jeff Law  <law@redhat.com>
1791         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
1792         bitmap a sparse bitmap instead of a simple bitmap.
1793         (mark_def_sites_initialize_block):  Corresponding changes.
1794         (ssa_mark_def_sites_initialize_block): Likewise.
1795         (ssa_mark_phi_uses): Likewise.
1796         (mark_def_site, ssa_mark_def_sites): Likewise.
1797         (mark_def_site_blocks): Likewise.
1798         (rewrite_ssa_into_ssa): Likewise.
1800         * tree-ssa-dom.c (record_cond): Pass correct variable type
1801         for last argument to htab_find_slot_with_hash.
1803         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
1804         effects when optimizing 0 % X.  Do not try to optimize X % 0.
1806 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
1808         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
1809         1_mmalua.
1811 2005-02-01  Eric Christopher  <echristo@redhat.com>
1813         * config/mips/mips.c (override_options): Warn if -mint64
1814         is used.
1815         * doc/invoke.texi (MIPS Options): Document that -mint64 is
1816         deprecated.
1818 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
1820         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
1821         timestamp.
1822         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
1823         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
1824         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
1825         (cached_regno): Initialize to INVALID_REGNUM.
1826         (cse_reg_info_table_size,
1827         cse_reg_info_table_first_uninitialized,
1828         cse_reg_info_timestamp): New.
1829         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
1830         get_cse_reg_info.
1831         (init_cse_reg_info, get_cse_reg_info_1): New.
1832         (get_cse_reg_info): Cache the last look-up.
1833         (new_basic_block): Update the code to clear mappings from
1834         registers to cse_reg_info entries.
1835         (cse_main): Call init_cse_reg_info.
1837         * cse.c (get_cse_reg_info): Update a comment.
1839 2005-01-31  Steven Bosscher  <stevenb@suse.de>
1841         PR c/19333
1842         * c-decl.c (start_decl): Do not warn about arrays of elements with
1843         an incomplete type here.
1844         (grokdeclarator): Do it here by making a pedwarn an error.
1845         * c-typeck.c (push_init_level): If there were previous errors with
1846         the constructor type, do not warn about braces for initializers.
1847         (process_init_element): Likewise for excess initializer elements.
1849 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1851         * cse.c (delete_trivially_dead_insn): Don't iterate.
1853 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
1855         * config/rs6000/rs6000.md (copysignsf3): New expand.
1856         (copysigndf3): Likewise.
1858 2005-01-31  Steven Bosscher  <stevenb@suse.de>
1860         * recog.c (constrain_operands): Only look for earlyclobber operand
1861         conflicts if an '&' constraint was seen.
1863 2005-01-31  Marc Espie <espie@openbsd.org>
1865         * config.gcc: Don't include embedded systems fragment, switches default
1866         debugging format to ELF.
1867         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
1868         longer pick it up there.
1870 2005-01-31  Dale Johannesen  <dalej@apple.com>
1872         * doc/extend.texi (nested functions): Fix linkage description.
1873         Clarify that static is not allowed.
1875 2005-01-31  Dale Johannesen  <dalej@apple.com>
1877         * config/rs6000/darwin.md (movsf_low_di):  Make work.
1878         (movdf_low_di):  Make work.
1880 2005-01-31  Dale Johannesen  <dalej@apple.com>
1882         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
1883         Make work for 64 bit.
1885 2005-01-31  Roger Sayle  <roger@eyesopen.com>
1886             Dale Johannesen  <dalej@apple.com>
1888         PR middle-end/19650
1889         * fold-const.c (fold_binary_op_with_conditional_arg):
1890         Make types match original operands, before STRIP_NOPS.
1892 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
1894         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
1895         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
1896         (struct gcc_sigcontext): Delete.  Merge contents to..
1897         (struct gcc_ucontext): ..here.
1898         (get_sigcontext): Delete.
1899         (get_regs): New function, like get_sigcontext but return regs ptr.
1900         64-bit version finds regs from r1 to support vdso.
1901         (ppc_linux_aux_vector): New function.
1902         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
1903         and vector regs.
1905 2005-01-31  Ira Rosen  <irar@il.ibm.com>
1907         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
1908         sizetype.
1909         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
1910         redundant fold. Fix misalignment for MINUS_EXPR.
1911         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
1912         (vect_analyze_pointer_ref_access): Likewise.
1913         (vect_get_memtag_and_dr): Likewise.
1915 2005-01-31  Richard Henderson  <rth@redhat.com>
1917         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
1918         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
1919         absnegdf2_i387, absnegxf2_i387): Likewise.
1921 2005-01-31  Richard Henderson  <rth@redhat.com>
1923         PR 19696
1924         * optabs.c (expand_copysign_absneg): New.
1925         (expand_copysign_bit): Split out from ...
1926         (expand_copysign): ... here.  Use expand_copysign_absneg.
1928 2005-01-30  Roger Sayle  <roger@eyesopen.com>
1930         PR middle-end/19697
1931         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
1932         constant as the second operand and a register as the third.
1934 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
1936         PR target/19704
1937         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
1938         that dllimport'd functions do not use all call-clobbered registers
1939         to pass parameters.
1941 2005-01-30  Richard Henderson  <rth@redhat.com>
1943         PR 19696
1944         * optabs.c (expand_absneg_bit): Split out from expand_unop and
1945         expand_abs_nojump and generalize.  Use operand_subword and
1946         emit_no_conflict_block.  Support large modes.
1947         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
1948         back to maximum.
1949         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
1950         negation to subtraction.
1951         (expand_copysign): Check that the format has signed zeros.
1952         Use operand_subword and emit_no_conflict_block.  Support large modes.
1954 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
1956         Fix PR tree-optimization/19624
1958         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
1959         * tree-ssa-pre.c: Add cfgloop.h.
1960         Update comment.
1961         (pre_stats): New member, constified.
1962         (inserted_exprs): New static variable.
1963         (NECESSARY): New macro.
1964         (create_expression_by_pieces): Fold the expression, and
1965         mark it as defaulting to not necessary. Also put in
1966         inserted_exprs.
1967         (fully_constant_expression): New function.
1968         (insert_into_preds_of_block): Modify to not insert phis when we
1969         are playing with induction variables.
1970         Push phis onto the inserted_exprs vector, and mark them as not
1971         necessary by default.
1972         (insert_aux): Call fully_constant_expression on eprime.
1973         If all edges produce the same value, mark it constant.
1974         (mark_operand_necessary): New function.
1975         (remove_dead_inserted_code): New function.
1976         (init_pre): Init loop optimizer to get loop info.
1977         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
1978         (execute_pre): Commit edge inserts, then remove dead code.
1980 2005-01-30  Richard Henderson  <rth@redhat.com>
1982         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
1983         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
1985 2005-01-30  Richard Henderson  <rth@redhat.com>
1987         PR target/19700
1988         * config/i386/i386.c (ix86_expand_copysign): New.
1989         (ix86_split_copysign_const): New.
1990         (ix86_split_copysign_var): Rename from ix86_split_copysign,
1991         rearrange op1/nmask operands.
1992         * config/i386/i386-protos.h: Update.
1993         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
1994         (copysigndf3): Likewise.
1995         (copysignsf3_const, copysigndf3_const): New.
1996         (copysignsf3_var): Rename from copysignsf3, split out splitter
1997         and fix split predicate for X constraint.
1998         (copysigndf3_var): Similarly.
2000 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
2002         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
2003         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
2004         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
2006 2005-01-29  Richard Henderson  <rth@redhat.com>
2008         PR target/19690
2009         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
2010         of # and * in constraints.
2012 2005-01-29  Richard Henderson  <rth@redhat.com>
2014         PR middle-end/19689
2015         * expr.c (store_field): Don't strip sub-mode cast when the input
2016         data is even smaller.
2018 2005-01-29  Richard Henderson  <rth@redhat.com>
2020         PR middle-end/19687
2021         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
2022         union being empty.
2024 2005-01-29  Richard Henderson  <rth@redhat.com>
2026         * combine.c (make_field_assignment): Fix argument order
2027         to gen_int_mode.
2029 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
2031         PR tree-optimization/15791
2032         * fold-const.c (extract_array_ref): New function.
2033         (fold): Fold comparisons between &a[i] and &a[j] or
2034         semantically equivalent trees.
2036 2005-01-29  Jeff Law  <law@redhat.com>
2038         * gcse.c (insert_expr_in_table): Revamp handling of available
2039         and anticipatable occurrence lists to avoid unnecessary list
2040         walking.
2041         (insert_set_in_table): Similarly.
2043 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
2045         * c-common.c (fix_string_type): Just use c_build_qualified_type to
2046         build string type.
2047         (c_build_qualified_type): Build qualified array types with
2048         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
2049         * c-decl.c (c_make_fname_decl): Build unqualified array type
2050         before qualified type.
2051         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
2052         type is qualified, not just if type itself is.  Don't apply
2053         qualifiers to array type when declarator is processed.  Apply
2054         qualifiers to field type whether or not it is an array type.
2055         Don't handle array types specially for applying qualifiers to
2056         variables.
2057         * c-typeck.c (composite_type): Build unqualified element type and
2058         array type when forming composite of array types.
2059         (common_pointer_type, comptypes, comp_target_types,
2060         type_lists_compatible_p, build_indirect_ref, build_array_ref,
2061         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
2062         types.
2063         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
2064         (args2) in variables a1 and a2.
2066 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
2068         * cse.c (n_elements_made, max_elements_made): Remove.
2069         (insert): Don't touch n_elements_made.
2070         (cse_main): Don't touch n_elements_made or max_elements_made.
2072 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
2074         PR target/15384
2075         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
2076         configuration part of dp-bit.c to be lost.
2078 2005-01-28  Roger Sayle  <roger@eyesopen.com>
2080         * expmed.c (expand_mult_highpart_optab): When attempting to use
2081         a non-widening multiplication in a wider mode, the operands need
2082         to be converted (zero or sign extended) to that mode.
2084 2005-01-28  Ian Lance Taylor  <ian@airs.com>
2086         PR middle-end/16558
2087         PR middle-end/19583
2088         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2089         through if both operands fall through.
2091 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2093         * cse.c (fold_rtx) <PC>: Don't optimize.
2095 2005-01-28  Jeff Law  <law@redhat.com>
2097         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2098         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2100 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2102         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2103         cse_reg_info_used_list_end): Remove.
2104         (cse_reg_info_list, cse_reg_info_list_free): New.
2105         (get_cse_reg_info): When allocating an instance of
2106         cse_reg_info, add it to the beginning of the cse_reg_info_list
2107         list.  Remove code to maintain cse_reg_info_used_list.
2108         (new_basic_block): Reset the free list to the beginning of
2109         cse_reg_info_list.
2111 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
2113         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2114         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2115         (frv_expand_mdpackh_builtin): New function.
2116         (frv_expand_builtin): Use it to expand __MDPACKH.
2117         * doc/extend.texi (__MDPACKH): Update documentation.
2119 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
2121         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2122         SSE_FLOAT_MODE_P for use_sse computation.
2124 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
2126         PR target/19663
2127         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2129 2005-01-27  Richard Henderson  <rth@redhat.com>
2131         * builtins.c (expand_builtin_copysign): New.
2132         (expand_builtin): Call it.
2133         * genopinit.c (optabs): Add copysign_optab.
2134         * optabs.c (init_optabs): Initialize it.
2135         (expand_copysign): New.
2136         * optabs.h (OTI_copysign, copysign_optab): New.
2137         (expand_copysign): Declare.
2139         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2140         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2142         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2143         (ix86_expand_fp_absneg_operator): ... here.
2144         (ix86_split_copysign): New.
2145         * config/i386/i386-protos.h: Update.
2146         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2147         (copysignsf3, copysigndf3): New.
2149         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2150         (copysignsf3, ncopysignsf3): New.
2151         (copysigndf3, ncopysigndf3): New.
2152         (copysignxf3, ncopysignxf3): New.
2153         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2155 2005-01-27  Arend Bayer  <arend.bayer@web.de>
2156             Kazu Hirata  <kazu@cs.umass.edu>
2158         * cse.c: (find_best_addr): Don't call copy_rtx before calling
2159         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
2160         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2161         NULL_RTX.
2163 2005-01-27  Jeff Law  <law@redhat.com>
2165         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2166         definitions of SSA_NAMEs which are not being rewritten.
2167         (rewrite_ssa_into_ssa): Only initialize the current definition
2168         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2169         If checking is enabled, assert that SSA_NAME_AUX is clear for all
2170         SSA_NAMEs before returning.
2172 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
2174         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2175         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2176         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2177         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2178         config/mips/iris6.h, config/sh/sh.c: Update copyright.
2180 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2182         PR middle-end/17278
2183         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2184         higher to -O2 and higher.  Likewise for tree PRE.
2185         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2186         and better.
2188 2005-01-27  Ian Lance Taylor  <ian@airs.com>
2190         PR middle-end/19583
2191         * gimple-low.c (try_catch_may_fallthru): New static function.
2192         (block_may_fallthru): Handle TRY_CATCH_EXPR.
2193         * tree-inline.c (expand_call_inline): Don't warn about reaching
2194         the end of a non-void function being inlined if the function uses
2195         a return slot.
2197 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
2199         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2201         PR c/18946
2202         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2203         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2204         (implicitly_declare): Handle error_mark_node.
2206 2005-01-27  Richard Henderson  <rth@redhat.com>
2208         PR tree-opt/14329
2209         * tree.h (struct tree_decl): Add debug_expr_is_from.
2210         (DECL_DEBUG_EXPR_IS_FROM): New.
2211         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2212         * dwarf2out.c (dwarf2out_var_location): Update to match.
2213         * tree-outof-ssa.c (create_temp): Likewise.
2214         * var-tracking.c (track_expr_p): Likewise.
2215         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2216         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2217         * toplev.c (default_tree_printer): Likewise.
2219 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
2221         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2222         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2224 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2226         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2227         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2228         ASM_CLOBBERS): Add tree checks.
2230         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2231         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2232         * c-common.def (SWITCH_STMT): Update to match.
2233         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2234         macros instead of SWITCH_EXPR ones.
2235         * c-dump.c (c_dump_tree): Likewise.
2236         * c-gimplify.c (gimplify_switch_stmt): Likewise.
2237         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2239         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2241 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
2243         * unwind-dw2.c (execute_stack_op): Add missing cases for
2244         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2246 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2248         * config.gcc (Obsolete configurations): Remove 'dummy', add
2249         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2250         sparc-*-openbsd*.
2252 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
2254         PR tree-optimization/19633
2255         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2256         CALL_EXPRs.
2257         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2258         are no call-clobbered variables.
2259         * tree-outof-ssa.c (check_replaceable): Return false for calls
2260         with side-effects.
2262 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
2264         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2265         even for variables with NULL DECL_INITIAL.
2267 2005-01-26  Stuart Hastings  <stuart@apple.com>
2269         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2271 2005-01-26  Richard Henderson  <rth@redhat.com>
2273         PR middle-end/18008
2274         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2275         field's type.
2276         * expr.c (store_field): Strip conversions to odd-bit-sized types
2277         if the destination field width matches.
2279 2005-01-26  Richard Henderson  <rth@redhat.com>
2281         * c-decl.c, expmed.c, expr.c: Revert last change.
2283 2005-01-26  Richard Henderson  <rth@redhat.com>
2285         PR middle-end/18008
2286         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2287         field's type.
2288         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2289         if we don't need the bits above those present in the current mode.
2290         * expr.c (store_field): Strip conversions to odd-bit-sized types
2291         if the destination field width matches.
2293 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2295         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2296         either -ffast-math or -funsafe-math-optimizations is in use.
2298 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2300         PR target/19293
2301         PR target/19329
2302         * config/avr/avr.c (notice_update_cc): Only set condition code for
2303         ashrqi3 if shift count > 0.
2304         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2305         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2306         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2307         count <= 0 as a no-op, and shift count >= width by copying zero
2308         or sign bit to all bits of the result.
2309         * config/avr/avr.md (all shifts): Add alternatives for zero shift
2310         count, with attribute "length" set to 0 and "cc" set to "none".
2312 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2314         * doc/invoke.texi: Document -mTLS.
2316         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
2317         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
2318         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
2319         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
2320         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
2321         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
2322         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
2323         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
2325         * configure.ac: Check for a TLS capable gas.
2327         * configure: Regenerate.
2329 2005-01-26  Richard Henderson  <rth@redhat.com>
2331         PR middle-end/18008
2332         * combine.c (make_field_assignment): Simplify store to zero_extract
2333         from a source with an overlapping mask.
2335 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2337         2004-11-11  Eric Christopher  <echristo@redhat.com>
2339         * config/frv/frv.md: Add fr400_integer automaton. Don't
2340         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
2341         to TYPE_MACC.
2343 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2345         PR middle-end/16585
2346         * cfgbuild.c (make_edges): Do not clear or set
2347         current_function_has_computed_jump.
2348         * function.h (struct function): Remove the has_computed_jump field.
2349         (current_function_has_computed_jump): Do not define.
2350         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
2351         in a computed jump.  Ignore current_function_has_computed_jump.
2353 2005-01-26  Richard Henderson  <rth@redhat.com>
2355         PR middle-end/19515
2356         * expr.c (categorize_ctor_elements): New argument p_must_clear.
2357         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
2358         fully initialized.
2359         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
2360         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
2361         objects into static storage if they have more than one non-zero value.
2362         * tree.h (categorize_ctor_elements): Update decl.
2364 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2366         PR middle-end/19616
2367         * tree.h (CALL_EXPR_TAILCALL): Add comment.
2368         * calls.c (check_sibcall_argument_overlap_1): Revert the change
2369         to this function from 2004-07-10.
2370         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
2371         the current function for tail call optimizations if the address
2372         of one of it its arguments is taken.
2374 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2376         * cse.c (fold_rtx): Call equiv_constant only when necessary.
2378 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
2380         * function.c (expand_function_end): If current_function_calls_alloca,
2381         emit stack restore in a place that is reached when the function falls
2382         through at the end.
2384 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
2386         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
2387         rule to avoid matching inappropriate suffix rule.
2389 2005-01-26  Jan Hubicka  <jh@suse.cz>
2391         PR tree-optimization/19241
2392         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
2394 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2396         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
2397         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
2398         of doubling.
2399         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
2400         <sim*>: Always use crt1.o, regardless of N in simN.
2401         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2402         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
2403         (CRT_CALL_STATIC_FUNCTION): Remove.
2404         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
2405         use crt1.o, regardless of N in simN.
2406         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2407         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
2408         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
2409         case isystem setting.
2410         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
2412 2005-01-25  Ian Lance Taylor  <ian@airs.com>
2414         * gimple-low.c (block_may_fallthru): Correct handling of
2415         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
2417 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2419         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
2420         handlers to match indentation; nested under the mtune=* handler.
2421         Similar for mcpu= and march=.
2423 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
2425         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
2426         * config/mips/linux64.h (LIB_SPEC): Likewise.
2427         * config/mn10300/linux.h (LIB_SPEC): Likewise.
2428         * config/sh/linux.h (LIB_SPEC): Likewise.
2430 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
2432         * config/frv/frv.c (frv_legitimize_tls_address): New.
2433         (TARGET_HAVE_TLS): Define.
2434         (FRV_SYMBOL_REF_TLS_P): Define.
2435         (frv_override_options): Handle new register classes.
2436         (frv_legitimate_address_p): Reject tls addresses.
2437         (frv_legitimize_address): Handle TLS addresses.
2438         (gen_inlined_tls_plt): New.
2439         (gen_tlsmoff): New.
2440         (frv_legitimize_tls_address): New.
2441         (unspec_got_name): Add TLS entries.
2442         (got12_operand): Add R_FRV_TLSMOFF12 case.
2443         (frv_emit_move): Fixup TLS addresses.
2444         (frv_emit_movsi): Legitimize TLS addresses.
2446         * config/frv/frv.h (MASK_BIG_TLS): New.
2447         (TARGET_BIG_TLS): New.
2448         (HAVE_AS_TLS): Define.
2449         (TARGET_SWITCHES): Add -mTLS and -mtls options.
2450         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
2451         (REG_CLASS_NAMES): Same.
2452         (REG_CLASS_CONTENTS): Same.
2453         (CONSTRAINT_LEN): New.
2454         (REG_CLASS_FROM_CONSTRAINT): New.
2455         (PREDICATE_CODES): Add symbolic_operand.
2457         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
2458         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
2459         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
2460         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
2461         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
2462         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
2463         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
2464         GR9_REG, GR14_REG, LRREG.
2465         (type): Add load_or_call attribute.
2466         ("load_or_call"): New reservation.
2467         ("call_gettlsoff"): New.
2468         ("tls_indirect_call"): New.
2469         ("tls_load_gottlsoff12"): New.
2470         ("tlsoff_hilo"): New.
2471         ("tls_tlsdesc_ldd"): New.
2472         ("tls_tlsoff_ld"): New.
2473         ("tls_lddi"): New.
2475         * config/frv/frv-protos.h (symbolic_operand): Protoize.
2477         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
2479         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2480         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
2481         * config/frv/frv.c (TLS_BIAS): Define.
2482         (frv_output_dwarf_dtprel): New.
2484 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
2486         PR rtl-optimization/19579
2487         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
2488         both A and B, see if they don't clobber registers the other expr uses.
2490 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
2492         * real.c (do_add): Initialize signalling and canonical members.
2494         * real.c (real_from_integer): Zero out destination.
2496 2005-01-18  Jan Hubicka  <jh@suse.cz>
2498         PR tree-optimize/19337
2499         * tree-inline.c (initialize_inlined_parameters): Copy
2500         saved_static_chain_decl only.
2502 2005-01-25  Richard Henderson  <rth@redhat.com>
2504         PR target/19556
2505         PR target/19584
2506         * config/i386/i386.c (x86_inter_unit_moves): Zero.
2507         (ix86_preferred_reload_class): Rewrite fp-constant section, with
2508         80387 enabled, to return a proper subclass.  Return the subset that
2509         overlaps with GENERAL_REGS for PLUS.
2510         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
2512 2005-01-25  Richard Henderson  <rth@redhat.com>
2514         PR middle-end/19609
2515         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
2517 2005-01-25  Roger Sayle  <roger@eyesopen.com>
2519         * expmed.c (choose_multiplier): Change interface to return the
2520         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
2521         (expand_divmod): Update calls to choose_multiplier.
2523 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2525         PR middle-end/19330
2526         * expmed.c (extract_bit_field): Use adjust_address instead of
2527         gen_lowpart when op0 is a MEM.
2529 2005-01-24  Steven Bosscher  <stevenb@suse.de>
2531         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
2533 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2535         * config/mips/irix-csr.c: New file.
2536         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2537         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2538         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2539         executables.
2541 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2543         PR bootstrap/19364
2544         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
2545         sparc/elf.h, add sparc/sp-elf.h.
2546         (sparc-*-rtems*): Likewise.
2547         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
2548         tm-dwarf2.h, add sparc/sp-elf.h.
2549         (sparc86x-*-elf): Likewise.
2550         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
2551         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
2552         TARGET_OS_CPP_BUILTINS.
2553         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2554         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2555         Undefine it.
2556         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
2557         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
2558         (SWITCH_TAKES_ARG): Likewise.
2559         (LOCAL_LABEL_PREFIX): Likewise.
2560         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2561         (TARGET_N_FORMAT_TYPES): Delete.
2562         (TARGET_FORMAT_TYPES): Likewise.
2563         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2564         * config/sparc/elf.h: Delete.
2565         * config/sparc/sp-elf.h: New file.
2567 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2569         * tree-flow-inline.h (phi_arg_from_edge): Remove.
2570         * tree-flow.h: Remove the corresponding prototype.
2571         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
2572         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
2574 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2576         PR target/17751
2577         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
2578         for AIX ABI or ELF -fPIC.
2579         (rs6000_emit_load_toc_table): Don't create toc_section here.
2580         (rs6000_xcoff_file_start): Nor here.
2582 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
2584         * sh.c (ra.h): Don't #include.
2585         (hard_regs_intersect_p): New function, resurrected from ra.c.
2587         * sh.c: Fix 1996 Copyright.
2589 2005-01-24  Richard Henderson  <rth@redhat.com>
2590             Aldy Hernandez  <aldyh@redhat.com>
2592         * regrename.c (note_sets): Handle subregs.
2594 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
2596         PR bootstrap/18058
2597         * genconditions.c (write_header, write_conditions): Elide file if
2598         not GCC >= 3.0.1.
2600 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2602         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
2603         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
2604         Update copyright.
2606 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2608         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
2609         expand_builtin_printf, expand_builtin_fprintf,
2610         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
2611         checking against POINTER_TYPE.
2612         (validate_arglist): Handle POINTER_TYPE code by checking
2613         POINTER_TYPE_P.
2615 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
2617         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
2618         init_rtlanal): New.
2619         (for_each_rtx): Call for_each_rtx_1.
2620         * rtl.h (init_rtlanal): Declare.
2621         * toplev.c (backend_init): Call init_rtlanal.
2623 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2625         * flow.c (propagate_one_insn): Formatting.
2627         PR middle-end/19551
2628         * flow.c (libcall_dead_p): Be more conservative if unsure.
2629         If there are any instructions between insn and call, see if they are
2630         all dead before saying the libcall is dead.
2632 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
2634         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
2635         operand constraint for operand 0.
2637 2005-01-23  Richard Henderson  <rth@redhat.com>
2639         PR 19486
2640         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
2641         edges leading to join block.
2643 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2645         * expmed.c (expand_mult_highpart): Make static.  Change type of
2646         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
2647         (expand_divmod): Updates calls to expand_mult_highpart by using
2648         gen_int_mode to pass a CONST_INT rtx.
2649         * rtl.h (expand_mult_highpart): Remove prototype.
2651 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2653         * flow.c (regset_bytes, regset_size): Remove.
2655         * cfganal.c: Fix a reference to Harvey's paper.
2657 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2659         PR rtl-optimization/19464
2660         * tree-optimize.c (init_tree_optimization_passes): Add one more
2661         copyrename pass just before out-of-ssa.
2663 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
2665         PR bootstrap/18058
2666         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
2667         * ggc-none.c (ggc_free): Define.
2669 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2671         * cse.c (max_reg, max_insn_uid): Remove.
2672         (cse_main): Don't access max_reg or max_insn_uid.
2674         * c-common.c (explicit_flag_signed_bitfields,
2675         lang_statement_code_p, lang_expand_function_end): Remove.
2676         * c-common.h: Remove the corresponding declarations.
2677         * c-opts.c (c_common_handle_option): Remove all write access
2678         to explicit_flag_signed_bitfields.
2680         * cgraph.c (cgraph_varpool_n_nodes): Remove.
2681         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
2682         * cgraph.h: Remove the corresponding declaration.
2684         * gcse.c (null_pointer_info): Remove.
2686 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2687             Eric Botcazou  <ebotcazou@libertysurf.fr>
2689         * combine.c (simplify_logical): Only simplify logical expressions
2690         of the form ior(and(x,y),z) by the inverse distributive law if the
2691         result is cheaper than the original.
2693 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2695         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
2696         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
2697         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
2698         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
2699         config/freebsd-spec.h, config/arm/arm.h,
2700         config/h8300/h8300.md, config/i386/i386.md,
2701         config/i386/predicates.md, config/i386/sse.md,
2702         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
2703         config/vax/vax.md: Fix comment typos.  Follow spelling
2704         conventions.
2706 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2708         * gengtype.c (walk_type): Produce `not equal to' compares for loop
2709         tests, instead of `less than'.
2711 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
2713         * function.c (assign_parm_setup_block): When creating a new stack slot
2714         for a parameter, get its alignment from the parameter's DECL_ALIGN
2715         rather than the type's TYPE_ALIGN.  Make sure that the parameter
2716         is at least word aligned.
2718 2005-01-22  Roger Sayle  <roger@eyesopen.com>
2720         PR middle-end/19378
2721         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2723 2005-01-22  Richard Henderson  <rth@redhat.com>
2725         PR target/19506
2726         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
2727         in both compare operands.
2728         (movdfcc_1_sse_max): Likewise.
2729         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
2730         (movdfcc_1_sse): Likewise.
2731         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
2732         scratch register as needed.
2734 2005-01-22  Richard Henderson  <rth@redhat.com>
2736         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
2738         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
2740 2005-01-22  Richard Henderson  <rth@redhat.com>
2742         * genopinit.c (optabs): Use smin/smax for floating point too.
2743         * doc/md.texi: Update to match.  Clarify that floating point
2744         results are undefined for +0/-0 and NaN.
2745         * doc/rtl.texi: Likewise.
2746         * rtl.def (SMIN, SMAX): Likewise
2747         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
2749         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
2750         leading 's' to the name.
2751         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
2752         smaxxf3, sminxf3): Likewise.
2753         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
2754         Likewise.
2756 2005-01-22  Paul Brook  <paul@codesourcery.com>
2758         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
2760 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
2762         * config/s390/s390.c (struct processor_costs): New fields
2763         dlgr, dlr, dr, dsgfr, dsgr.
2764         (z900_cost, z990_cost): Values for new fields.
2765         (s390_rtx_costs): New cases MEM und COMPARE in switch
2766         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
2767         DIV, MOD, UDIV, UMOD.
2769 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
2771         * config/s390/s390.md ("doloop_si64"): Reload input value directly
2772         into the register being decremented.
2773         ("doloop_si31", "doloop_di"): Likewise.
2774         ("*doloop_si_long"): Adapt pattern.
2776 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
2778         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
2779         access registers.
2780         (CLASS_MAX_NREGS): Likewise.
2782 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
2784         * doc/tree-ssa.texi (Statement Operands): Add example for new
2785         must-def macro. Note deprecation of old operands interface.
2787 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
2789         PR tree-optimization/19484
2790         * tree-cfg.c (remove_fallthru_edge): New function.
2791         (cleanup_control_flow): Remove fallthru edges from calls that are
2792         now known not to return.
2794 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
2796         Fix PR tree-optimization/19038
2797         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
2798         copies with loop variant ones.
2800 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
2802         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
2803         config/alpha/alpha-protos.h, config/alpha/alpha.h,
2804         config/alpha/alpha.md, config/alpha/predicates.md,
2805         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
2806         config/sparc/sol2.h: Update copyright.
2808         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
2809         first label to see if it is a nonlocal label.
2811 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
2812             Andrew Pinski  <pinskia@physics.uc.edu>
2814         PR target/19491
2815         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
2816         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
2818 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
2820         * config/rs6000/rtems.h: Update copyright.
2822 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
2824         PR target/19548
2825         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
2826         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
2827         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
2829 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2831         PR c/18809
2832         * c-typeck.c (convert_arguments): Check for error_mark_node.
2834 2005-01-21  Ian Lance Taylor  <ian@airs.com>
2836         PR tree-optimization/13000
2837         * tree-inline.c: Include "tree-flow.h".
2838         (expand_call_inline): If warn_return_type, warn if non-void inline
2839         function falls through.
2840         * tree-cfg.c (execute_warn_function_return): Don't warn about
2841         control reaching end if TREE_NO_WARNING is set.  Set
2842         TREE_NO_WARNING.
2843         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
2844         has been lowered.
2845         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
2846         branch if we don't need one.
2847         * c-typeck.c: Include "tree-flow.h"
2848         (c_finish_bc_stmt): Don't add a goto if the current statement
2849         list doesn't fall through to the current point.
2851 2005-01-21  Roger Sayle  <roger@eyesopen.com>
2853         PR rtl-optimization/576
2854         * real.c (real_arithmetic): Change return type from void to bool
2855         to return an indication that the result may be inexact.
2856         * real.h (real_arithmeric): Update prototype.
2857         * fold-const.c (const_binop):  Don't constant fold floating
2858         point expressions when the user specifies -frounding-math and
2859         the result may depend upon the run-time rounding mode.
2860         (fold_convert_const_real_from_real): Clean-up.
2861         (fold_initializer): Ignore flag_rounding_math for initializers.
2862         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
2863         constant fold FP operations with flag_rounding_math if the
2864         result may depend upon the run-time rounding mode.
2866 2005-01-21  Tom Tromey  <tromey@redhat.com>
2868         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
2870 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
2872         * tree-cfg.c: Fix comment typos.
2874 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
2876         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
2877         around the call to rest_of_handle_branch_target_load_optimize.
2879 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2881         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
2882         (sparc64-*-openbsd*): Likewise.
2883         (sparclite-*-elf*): Include tm-dwarf2.h.
2884         (sparc86x-*-elf*): Likewise.
2885         (sparc64-*-elf*): Likewise.
2886         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
2887         (DBX_DEBUGGING_INFO): Likewise.
2888         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
2889         (PREFERRED_DEBUGGING_TYPE): Likewise.
2890         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
2891         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
2892         (PREFERRED_DEBUGGING_TYPE): Likewise.
2893         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
2894         (PREFERRED_DEBUGGING_TYPE): Likewise.
2895         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
2897 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
2899         PR target/18701
2900         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
2902 2005-01-20  Paul Brook  <paul@codesourcery.com>
2904         * doc/rtl.texi: Document value extension requirements for CONST_INT.
2906 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2908         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
2909         label is first in a sequence of labels.
2911         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
2913 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
2914             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2916         * doc/sourcebuild.texi (Test Directives): New.
2918 2005-01-20  Roger Sayle  <roger@eyesopen.com>
2920         * real.c (real_floor): Don't leave the result uninitialized when
2921         mode is VOIDMode, but return the unrounded intermediate value.
2922         (real_ceil): Likewise.
2924 2005-01-20  Paul Brook  <paul@codesourcery.com>
2926         * config/arm/arm.md (insv): Use gen_int_mode.
2928 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2930         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
2931         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2932         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2933         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2934         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2936 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
2938         Fix PR debug/19124
2939         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
2940         fbreg, so we have to assume we can't.
2941         (loc_descriptor_from_tree_1): Ditto.
2942         (containing_function_has_frame_base): New function.
2943         (add_location_or_const_value_attribute): Use it.
2944         Also try to generate a frame_base from a single element location
2945         list.
2947 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2949         PR tree-optimization/15349
2950         * timevar.def (TV_TREE_MERGE_PHI): New.
2951         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
2952         PHI_WANTED.
2953         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
2954         calls to tree_forwarder_block_p.
2955         (remove_forwarder_block_with_phi, merge_phi_nodes,
2956         gate_merge_phi, pass_merge_phi): New.
2957         * tree-optimize.c (init_tree_optimization_passes): Add
2958         pass_merge_phi.
2959         * tree-pass.h: Add an extern for pass_merge_phi;
2961 2005-01-20  Richard Henderson  <rth@redhat.com>
2963         PR target/19418
2964         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
2965         (_mm_castps_pd, _mm_castps_si128): New.
2966         (_mm_castsi128_ps, _mm_castsi128_pd): New.
2968 2005-01-20  Richard Henderson  <rth@redhat.com>
2970         PR target/19530
2971         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
2972         __builtin_ia32_vec_init_v2si.
2973         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
2974         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
2975         (ix86_init_mmx_sse_builtins): Create it.
2976         (ix86_expand_builtin): Expand it.
2977         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
2978         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
2979         (vec_extractv2si_0, vec_extractv2si_1): New.
2981 2005-01-20  Richard Henderson  <rth@redhat.com>
2983         PR target/16533
2984         * config/i386/i386.c (ix86_expand_push): New.
2985         * config/i386/mmx.md (push<MMXMODE>1): New.
2986         * config/i386/sse.md (push<SSEMODE>1): New.
2987         * config/i386/i386-protos.h: Update.
2989 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2991         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
2992         copyright.
2994 2005-01-20  Richard Henderson  <rth@redhat.com>
2996         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
2997         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
2999 2005-01-19  Richard Henderson  <rth@redhat.com>
3001         PR target/19350
3002         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
3003         to V4SFmode in SSE1 fallback load path.
3005 2005-01-19  Richard Henderson  <rth@redhat.com>
3007         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
3008         in QImode expansion to ix86_expand_vector_set.
3009         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
3011 2005-01-19  Richard Henderson  <rth@redhat.com>
3013         PR target/19511
3014         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
3015         subclass of the input class.
3016         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
3017         Always true for cross-SSE1 classes.  Rationalize conditionals.
3018         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
3019         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
3020         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
3021         (movdi_2): Add MMX/SSE zeros.
3022         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
3023         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
3024         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
3025         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
3026         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
3027         (zero_extendsidi2_rex64_1): Remove.
3028         (MOV0 peephole): Check GENERAL_REG_P.
3030 2005-01-19  Richard Henderson  <rth@redhat.com>
3032         PR target/19427
3033         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
3034         shufps elements.
3035         (ix86_expand_vector_extract): Likewise.
3037 2005-01-19  Richard Henderson  <rth@redhat.com>
3039         PR middle-end/19304
3040         * expr.c (emit_move_change_mode): New argument force; use
3041         simplify_gen_subreg if true.
3042         (emit_move_via_alt_mode): Merge into ...
3043         (emit_move_via_integer): ... here.
3044         (emit_move_ccmode): Use emit_move_change_mode directly.
3046 2005-01-19  Richard Henderson  <rth@redhat.com>
3048         PR target/19518
3049         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
3050         (alpha_preferred_reload_class): Handle CONST_VECTOR.
3051         (alpha_emit_set_const_1): Add no_output parameter; don't emit
3052         rtl if true.
3053         (alpha_emit_set_const): Likewise.  Make static.
3054         (alpha_emit_set_long_const): Make static.
3055         (alpha_extract_integer): Split out from alpha_expand_mov.
3056         (alpha_split_const_mov): Likewise.
3057         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
3058         (alpha_legitimate_constant_p): New.
3059         * config/alpha/alpha-protos.h: Update.
3060         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
3061         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
3062         * config/alpha/alpha.md (movsi): Add n alternative.
3063         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
3064         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
3065         (splitters for all of the above): Use alpha_split_const_mov.
3066         * config/alpha/predicates.md (non_add_const_operand): New.
3067         (non_zero_const_operand): New.
3068         (input_operand): Use alpha_legitimate_constant_p after reload.
3070 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3072         PR tree-optimization/19038
3073         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
3074         (add_candidate): Add ivs with increment in latch only if
3075         allow_ip_end_pos_p is true.
3076         (determine_iv_cost): Use empty_block_p.
3078 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
3080         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
3081         (compute_dominance_frontiers): Ditto.
3083 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
3085         PR target/19529
3086         * config/sh/t-rtems: New.
3087         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3089 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3091         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3092         the offset of the selected field.
3094 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3096         * tree-cfg.c (remove_forwarder_block): Fix the check to
3097         prevent a nonlocal label from appearing in the middle of a
3098         basic block.
3100 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
3102         PR rtl-optimization/19462
3103         * reorg.c (find_end_label): Create return insn only if
3104         current_function_epilogue_delay_list is empty.
3106 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
3108         * doc/passes.texi: Remove paragraph mentioning new-ra.
3110 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
3112         PR rtl-optimization/15139
3113         * combine.c: Include params.h.
3114         (count_rtxs): New function.
3115         (record_value_for_reg): If replace_rtx would replace at least
3116         2 occurrences of REG in VALUE and TEM is really large, replace REG with
3117         (clobber (const_int 0)) instead of TEM.
3118         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3119         * params.h (MAX_LAST_VALUE_RTL): New.
3120         * Makefile.in (combine.o): Depend on $(PARAMS_H).
3121         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3123         PR c/17297
3124         * c-typeck.c (digest_init): Only call build_vector if all constructor
3125         elements are *_CST nodes.
3126         * gimplify.c (gimplify_init_constructor): Likewise.
3128         PR middle-end/19164
3129         * c-typeck.c (digest_init): Only call build_vector if inside_init
3130         is a CONSTRUCTOR.
3132 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3134         * toplev.c (init_asm_output): Remove dead #ifdef.
3136 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3138         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3140 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3142         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3143         accessing DECL_FUNCTION_CODE.
3144         * dojump.c (do_jump): Likewise.
3145         * gimplify.c (gimplify_call_expr): Likewise.
3146         * predict.c (expr_expected_value): Likewise.
3147         (strip_builtin_expect): Likewise.
3148         * tree-inline.c (estimate_num_insns_1): Likewise.
3149         * tree-ssa-loop-im.c (stmt_cost): Likewise
3150         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3151         (tree_expr_nonnegative_p): Likewise.
3153 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3155         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3156         variant of the load_pcrel_sym pattern.
3157         * config/sparc/sparc.md (P macro): Move to the top.
3158         (load_pcrel_sym): Macroize using P.
3159         (save_register_window): Likewise.
3161 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
3163         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3164         ("sordered"): Same.
3166 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3168         PR C/19472
3169         * c-typeck.c (build_asm_expr): Strip nops off
3170         input memory operands.
3172 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
3174         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3175         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3176         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3177         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3179 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
3181         PR target/19379
3182         * config/i386/i386.c (override_options): If the 80387 is disabled,
3183         then do not return FP values using FP registers.
3185 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3187         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3188         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3189         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3190         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3191         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3192         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3193         output.h, postreload-gcse.c, postreload.c, recog.c,
3194         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3195         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3196         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3197         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3198         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3199         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3200         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3201         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3203         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3204         config/alpha/alpha.c, config/arm/vfp.md,
3205         config/i386/emmintrin.h, config/i386/i386-modes.def,
3206         config/i386/i386-protos.h, config/i386/i386.h,
3207         config/i386/pmmintrin.h, config/i386/ppro.md,
3208         config/i386/predicates.md, config/i386/xmmintrin.h,
3209         config/i860/i860.c, config/ia64/ia64-modes.def,
3210         config/ia64/ia64-protos.h, config/ia64/ia64.h,
3211         config/ia64/ia64.md, config/ia64/itanium1.md,
3212         config/ia64/itanium2.md, config/ia64/predicates.md,
3213         config/iq2000/iq2000.h, config/mips/linux64.h,
3214         config/rs6000/aix41.h, config/rs6000/aix43.h,
3215         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3216         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3217         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3218         config/sparc/linux64.h, config/sparc/litecoff.h,
3219         config/sparc/sp64-elf.h, config/sparc/sparc.c,
3220         config/sparc/sparc.h, config/sparc/sparc.md,
3221         config/sparc/sysv4-only.h: Update copyright.
3223 2005-01-18  Richard Henderson  <rth@redhat.com>
3225         PR target/19496
3226         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3228 2005-01-18  Marc Espie  <espie@openbsd.org>
3229         * config/i386/openbsdelf.h: Typo.
3231 2005-01-18  Richard Henderson  <rth@redhat.com>
3233         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3234         special case for sse.
3235         * config/i386/predicates.md (sse_comparison_operator): Likewise.
3237 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
3239         * tree-inline.c (estimate_num_insns_1): Added cases for
3240         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3242 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3244         PR rtl-optimization/19296
3245         * combine.c (simplify_comparison): Rewrite the condition under
3246         which a non-paradoxical SUBREG of a PLUS can be lifted when
3247         compared against a constant.
3249 2005-01-18  Andi Kleen <ak@muc.de>
3251         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3252         * c.opt (-Wpointer-sign): Add.
3253         * doc/invoke.texi: (-Wpointer-sign): Add.
3255 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3257         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3258         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3259         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3260         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3261         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3262         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
3263         for TARGET_MIX_SSE_I387.
3264         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3265         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3266         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3267         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3268         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3269         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
3270         TARGET_MIX_SSE_I387.
3271         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3272         from expander.
3274 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3276         PR target/19424
3277         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3278         Add movaps alternative for xmm reg->reg move.
3280 2005-01-17  Jeff Law  <law@redhat.com>
3282         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3283         at the end of the main DOM loop rather than just before DOM exits.
3285 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
3287         PR tree-optimization/19121
3288         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3289         adding aliases to a name tag, also add them to the pointer's
3290         type tag.
3291         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3292         sensitive alias info at all.  Only check that the two pointers
3293         have compatible pointed-to sets.
3294         * tree-ssa.c (verify_name_tags): Verify that the alias set of
3295         a pointer's type tag is a superset of the alias set of the
3296         pointer's name tag.
3298 2005-01-17  James E Wilson  <wilson@specifixinc.com>
3300         PR target/19357
3301         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
3302         comment to document why.
3304 2005-01-17  Richard Henderson  <rth@redhat.com>
3306         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3307         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3308         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3309         sse2_vmsminv2df3_finite): New.
3310         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3311         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3312         Force op1 into register.
3314 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
3316         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
3317         bubblestrap from always rebuilding build directory.
3319 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
3321         * config/s390/s390.md ("*clc"): Remove incorrect '='.
3322         ("*cmpmem_short"): Likewise.
3324 2005-01-17  Steven Bosscher  <stevenb@suse.de>
3326         * basic-block.h: Document BB_* flags.
3327         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
3328         use an sbitmap instead.
3329         * sched-rgn.c (compute_trg_info): Likewise.
3331 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
3333         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
3334         redundant target_cpu_default and extra_parts lines.  Use the default
3335         "from-abi" ISA.
3336         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
3337         (SUBTARGET_EXTRA_SPECS): Delete.
3338         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
3339         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
3340         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
3341         and "n32" for -mabi=n32.
3343 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3345         PR c/5675
3346         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
3347         fold constant variables into initial values.
3349 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3351         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
3353         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
3354         through the statements backward.
3356 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3358         PR middle-end/13127:
3359         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
3360         a variable set to the return value of the inlined function.
3362 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
3364         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
3365         when modes are tieable.
3367 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
3369         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
3370         of pthread_create to find out if threads are enabled.
3371         * gthr-posix95.h (__gthread_active_p): Likewise.
3373 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
3375         * common.opt (-fnew-ra): Remove.
3376         * ra*.*: Remove.
3377         * toplev.h (flag_new_regalloc): Remove.
3378         * Makefile.in (ra*.*): Don't mention.
3379         * passes.c (rest_of_handle_new_regalloc): Remove.
3380         (rest_of_handle_combine, rest_of_compilation): Always consider
3381         flag_new_regalloc as false.
3382         * doc/invoke.texi: Don't document -fnew-ra.
3384 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
3386         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
3387         last parameter to reg_scan.
3388         * loop.c (loop_optimize): Likewise.
3389         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
3390         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
3391         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
3392         rest_of_handle_gcse, rest_of_handle_loop_optimize,
3393         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
3394         * regclass.c (reg_scan): Likewise, for the declaration.
3395         * rtl.h (reg_scan): Likewise, for the prototype.
3397 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3399         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
3400         mark_dfs_back_edges.
3402 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
3404         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
3405         (compute_avail): Uses don't go in tmp_gen.
3407 2005-01-16  Steven Bosscher  <stevenb@suse.de>
3409         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
3410         loop to look for a free slot in a page entry.
3412 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3414         PR target/16304
3415         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
3416         * toplev.c (compile_file): Call process_pending_assemble_output_defs
3417         just before targetm.asm_out.file_end.
3418         * tree.h (process_pending_assemble_output_defs): Declare.
3419         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
3420         New functions.
3421         (assemble_alias): Defer generation of assembly code for defines when
3422         TARGET_DEFERRED_OUTPUT_DEFS is true.
3423         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3424         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3425         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
3427 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3429         PR target/19336
3430         * pa.c (pa_scalar_mode_supported_p): New function.
3431         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3432         * pa.h (MIN_UNITS_PER_WORD): Add comment.
3434         * pa-protos.h (prefetch_operand): Delete.
3435         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
3436         * pa.c (prefetch_operand): Delete.
3437         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
3438         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
3439         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
3440         and prefetch_nocc_operand.
3441         * pa.md (prefetch): Rework to avoid reload problems handling short
3442         displacements when a cache control completer needs to be provided.
3443         (prefetch_32, prefetch_64): Delete.
3444         (prefetch_cc, prefetch_nocc): New patterns.
3446 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
3448         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
3450 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3452         PR ada/19388
3453         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
3454         exceeds maximum alignment for global common data.
3455         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
3456         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
3458 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3460         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
3462 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3464         * harg-reg-set.h (reg_class_names): Prototype global array.
3465         * regclass.c (reg_class_names): Declare here and initialize to
3466         REG_CLASS_NAMES.
3467         (dump_regclass): Remove local declaration of reg_class_names.
3468         (regclass): Likewise.
3469         * cfg.c (dump_flow_info): Likewise.
3470         * ra-debug.c (reg_class_names): Likewise.
3471         * regrename.c (reg_class_names): Likewise.
3472         * reload.c (reg_class_names): Likewise.
3473         * reload1.c (spill_failure): Likewise.
3474         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
3476 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
3478         * config/s390/s390.md ("reload_outti"): Remove predicate for
3479         output operand.  Abort if operand is not a MEM.
3480         ("reload_outdi", "reload_outdf"): Likewise.
3482 2005-01-15  Marc Espie  <espie@openbsd.org>
3484         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
3485         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
3486         * config/openbsd.h:  Fix C++ includes for native configurations.
3487         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
3488         Add trampoline support.
3489         * config/i386/openbsdelf.h: New.
3491 2005-01-15  Marc Espie  <espie@openbsd.org>
3493         * collect2.c (main): Explicitly parse -dynamic-linker option.
3495 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
3497         PR tree-optimization/19060
3498         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
3499         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
3500         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
3501         and handle extract_range_from_cond returning false.
3502         * fold-const.c (fold): Optimize comparisons with min/max even for
3503         width > HOST_BITS_PER_WIDE_INT.
3505 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
3507         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
3508         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
3509         Remove little endian multilib variants.
3510         Add mips32 multilib variant.
3512 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3514         * explow.c (copy_all_reg, stabilize): Remove.
3515         * expr.h: Remove the corresponding prototypes.
3517         * rtlanal.c (regs_set_between_p): Remove.
3518         * rtl.h: Remove the corresponding prototype.
3520 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
3522         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
3523         to rs6000_nonimmediate_operand.
3524         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
3525         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
3526         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
3527         rs6000_nonimmediate_operand.
3528         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
3529         rs6000_nonimmediate_operand.
3531 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
3533         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
3535 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3537         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
3538         on e500v2.
3539         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
3540         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
3542         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
3543         (rs6k_nonimmediate_operand): New.
3544         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
3545         correctly.
3546         (legitimate_lo_sum_address_p): Same.
3547         (rs6000_legitimize_address): Same.
3548         (rs6000_legitimize_reload_address): Same.
3549         (rs6000_legitimate_address): Same.
3550         (spe_build_register_parallel): Pass DF and DC modes in a DI
3551         register.
3553         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
3554         to rs6k_nonimmediate_operand.
3556         * config/rs6000/spe.md ("*frob_df_di"): New.
3557         ("*frob_di_df"): New.
3558         ("*frob_di_df_2"): New.
3559         ("*mov_sidf_e500_subreg0"): New.
3560         ("*mov_sidf_e500_subreg4"): New.
3561         ("*movdf_e500_double"): Change predicate to
3562         rs6k_nonimmediate_operand.
3564 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3566         * postreload.c (move2add_note_store): Only call
3567         trunc_int_for_mode on scalar integers.
3569 2005-01-14  Steven Bosscher  <stevenb@suse.de>
3571         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
3572         replace BB_VISITED uses.
3573         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
3574         (propagate_necessity): Check the bitmap instead of BB_VISITED.
3575         (tree_dce_done): Free visited_control_parents.
3576         (perform_tree_ssa_dce): Allocate and clear it.
3577         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
3578         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
3579         instead of BB_VISITED.
3581 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
3583         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
3584         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
3585         Remove unused prototypes.
3587 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3589         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
3590         64-bit register usage.
3591         (spe_func_has_64bit_regs_p): Add FIXME note.
3593 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3595         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
3596         flag_finite_math_only with flag_unsafe_math_optimizations.
3598 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
3600         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
3601         end-of-stack check.
3602         (__tpf_eh_return): Copy TPF private stack area from the module
3603         boundary stack frame.  Add check for when module addresses are
3604         equal, but no stub address is found.
3606 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
3608         PR target/7525
3609         * arm.h (struct machine_function): Add call_via field.
3610         (thumb_call_via_label): Declare.
3611         * arm.c (thumb_call_via_label): New variable.
3612         (thumb_call_reg_needed): New variable.
3613         (arm_output_function_epilogue): For Thumb code, output any per-function
3614         call-indirect trampolines.
3615         (thumb_call_via_reg): New function.
3616         (arm_file_end): New function.
3617         (TARGET_ASM_FILE_END): Call arm_file_end.
3618         (aof_file_end): Likewise.
3619         * arm-protos.h (thumb_call_via_reg): Declare.
3620         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
3621         thumb_call_via_reg in normal case.
3623 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
3625         PR middle-end/19084
3626         PR rtl-optimization/19348
3627         * recog.c (peephole2_optimize): Do global life update if some peephole
3628         decides it doesn't need at least one of its inputs and that change
3629         influences liveness at the start of the basic block.
3631         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
3632         arguments instead of 1.
3634 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
3636         PR middle-end/18820
3637         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
3638         zero for nested functions needing a static chain or functions
3639         with a non-constant address.
3641 2005-01-13  Roger Sayle  <roger@eyesopen.com>
3643         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
3644         (and (sign_extend X) C) into (zero_extend (and X C)).
3646 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
3648         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
3650 2005-01-13  Richard Henderson  <rth@redhat.com>
3652         PR target/19009
3653         PR target/19250
3654         PR target/19252
3655         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
3656         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
3657         not just TARGET_SSE.
3658         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
3659         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
3660         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
3661         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
3662         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
3663         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
3664         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
3665         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
3666         (movdicc_c_rex64): Rename with '*'.
3667         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
3668         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
3669         (movsfcc_1_387): Rename from movsfcc_1.
3670         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
3671         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
3672         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
3673         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
3674         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
3675         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
3676         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
3677         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
3678         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
3679         sse_movdfcc_const0_4): Remove.
3680         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
3681         recognize min/max early.  Update for changed sse cmove patterns.
3682         (ix86_split_sse_movcc): New.
3683         * config/i386/i386-protos.h: Update.
3685 2005-01-13  Steven Bosscher  <stevenb@suse.de>
3687         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
3688         (fix_stmt_v_may_defs): Likewise.
3690 2005-01-13  Richard Henderson  <rth@redhat.com>
3692         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
3693         for converting the mask.
3695 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
3697         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
3698         definition to 600.
3700 2005-01-13  Richard Henderson  <rth@redhat.com>
3702         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
3703         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
3704         IX86_BUILTIN_MOVDQ2Q): Remove.
3705         (IX86_BUILTIN_VEC_EXT_V4SI): New.
3706         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
3707         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
3708         shuffling.
3709         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
3710         (sse2_pextrw): Fix immediate constraint.
3711         (sse2_loadq, sse2_loadq_rex64): Remove.
3712         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
3713         Use __builtin_ia32_vec_ext_<size>.
3714         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
3716 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
3718         * function.c (assign_parm_setup_block): Look inside original
3719         entry_parm when inspecting PARALLEL.
3721 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
3722             Joel Sherrill  <joel@oarcorp.com>
3724         PR target/19399
3725         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
3726         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
3727         rtems_gxx_recursive_mutex_init.
3728         (__gthread_recursive_mutex_lock): New function.
3729         (__gthread_recursive_mutex_trylock): Likewise.
3730         (__gthread_recursive_mutex_unlock): Likewise.
3732 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
3734         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
3736 2005-01-13  Jan Beulich  <jbeulich@novell.com>
3738         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
3739         (ashrti3_internal): Indicate output is early clobber. Generate result
3740         into output rather than first input. Use move for low word of output
3741         if shift count is exactly 64.
3742         (lshrti3_internal): Likewise.
3744 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
3746         PR target/18329
3747         PR target/18330
3748         * reload1.c (delete_output_reload): Don't delete an output reload
3749         if the pseudo lives longer than a single basic block.  Adjust and
3750         improve wording of comment.
3752 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
3754         PR target/19334
3755         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
3756         of TYPE_SIZE where we mean the number of bytes.
3758 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
3760         * function.c (assign_parm_setup_block): Relax condition on
3761         multi-register optimization.
3763 2005-01-12  Nick Clifton  <nickc@redhat.com>
3765         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
3766         an "in_delay_slot" attribute of "no" to prevent them being used in
3767         delay slots.  This is forbidden because they might generate
3768         exceptions.
3770 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
3772         PR target/19389
3773         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
3774         with r->Y and Y->r.
3776 2005-01-12  Nick Clifton  <nickc@redhat.com>
3778         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
3779         passed on to GAS) but do not define, as GAS no longer supports or
3780         needs the -m2000 option.
3782 2005-01-11  Roger Sayle  <roger@eyesopen.com>
3784         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
3785         type as args of unprototyped builtins aren't automatically promoted.
3786         (fold_builtin_abs): Likewise.
3788 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3790         * Makefile.in: Set a `build-warn' variable.
3792 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
3794         PR tree-optimization/17949
3795         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
3796         (find_interesting_uses_address): Use it.
3798 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
3800         * regrename.c (kill_value): Handle subreg's that won't simplify.
3802 2005-01-11  Richard Henderson  <rth@redhat.com>
3804         PR target/13366
3805         * config/i386/i386.h (enum ix86_builtins): Move ...
3806         * config/i386/i386.c: ... here.
3807         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
3808         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
3809         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
3810         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
3811         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
3812         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
3813         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
3814         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
3815         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
3816         IX86_BUILTIN_LOADDDUP): Remove.
3817         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
3818         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
3819         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
3820         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
3821         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
3822         (ix86_init_builtins): Make static.
3823         (ix86_init_mmx_sse_builtins): Update for changed builtins.
3824         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
3825         if all the modes match.  Otherwise, fake it.
3826         (get_element_number, ix86_expand_vec_init_builtin,
3827         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
3828         (ix86_expand_builtin): Make static.  Update for changed builtins.
3829         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
3830         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
3831         (ix86_expand_vector_init_duplicate): New.
3832         (ix86_expand_vector_init_low_nonzero): New.
3833         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
3834         Split out from ix86_expand_vector_init; handle integer modes.
3835         (ix86_expand_vector_init): Use them.
3836         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
3837         * config/i386/i386-protos.h: Update.
3838         * config/i386/predicates.md (reg_or_0_operand): New.
3839         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
3840         (movv2sf_internal): Likewise.  And a splitter to match them all.
3841         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
3842         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
3843         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
3844         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
3845         (mmx_pinsrw): Fix operand ordering.
3846         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
3847         rather than sse_loadss expander.
3848         (movv2df splitter): Similarly.
3849         (sse_loadss, sse_loadlss): Remove.
3850         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
3851         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
3852         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
3853         (sse3_movddup): Rename with '*'.
3854         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
3855         (sse2_loadsd): Remove.
3856         (vec_dupv2df_sse3): Rename from sse3_loadddup.
3857         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
3858         (sse2_pinsrw): Fix argument ordering.
3859         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
3860         (sse2_stored): Remove 'r' destination.
3861         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
3862         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
3863         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
3864         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
3865         vec_extractv16qi, vec_initv16qi): New.
3867         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
3868         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
3869         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
3870         constructor form.
3871         (_mm_load_pd, _mm_store_pd): Use plain dereference.
3872         (_mm_load_si128, _mm_store_si128): Likewise.
3873         (_mm_load1_pd): Use _mm_set1_pd.
3874         (_mm_load_sd): Use _mm_set_sd.
3875         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
3876         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
3877         (_mm_set_epi64): Use _mm_set_epi64x.
3878         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
3879         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
3880         _mm_setr_epi8): Use _mm_set_foo form.
3881         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
3882         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
3883         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
3884         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
3885         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
3886         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
3887         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
3888         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
3889         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
3890         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
3891         (_mm_movedup_pd): Use _mm_shuffle_pd.
3892         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
3893         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
3894         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
3895         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
3896         Use _mm_setzero_ps.
3897         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
3898         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
3899         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
3900         (_mm_store_ps): Use raw dereference.
3901         (_mm_store1_ps): Use _mm_storeu_ps.
3902         (_mm_storer_ps): Use _mm_store_ps.
3903         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
3904         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
3906 2005-01-11  Stan Shebs  <shebs@apple.com>
3908         * config/rs6000/rs6000.c (machopic_output_stub): Issue
3909         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
3911 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
3913         PR target/18761
3914         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
3915         Skip all DECLs except for FIELD_DECLs.
3917 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
3919         * config/s390/s390.c (override_options): Return error if
3920         -mbackchain, -mpacked-stack and -mhard-float are used together.
3921         (s390_va_start): Remove the backchain && packed-stack special case.
3922         (s390_gimplify_va_arg): Likewise.
3923         * doc/invoke.texi: Remove the ABI incompatibility note.
3925 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
3927         * config/s390/s390.c (struct s390_frame_layout): Remove
3928         save_backchain_p.
3929         (s390_frame_info, s390_emit_prologue): Replace occurrences of
3930         save_backchain_p with TARGET_BACKCHAIN.
3932 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
3934         PR target/18916
3935         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
3936         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
3937         * function.c (locate_and_pad_parm): Set new field.
3938         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
3939         Tweak where_pad test to include "none".  Always set mem align for
3940         stack_parm.
3941         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
3942         not sufficient for type.
3943         (assign_parm_setup_block): If stack_parm is zero on entry, always
3944         make a new stack local.  Block move old stack parm if necessary
3945         to new aligned stack local.
3946         (assign_parm_setup_stack): Use a block move to handle
3947         potentially misaligned entry_parm.
3948         (assign_parms_unsplit_complex): Specify required alignment when
3949         creating stack local.
3950         * calls.c (compute_argument_addresses): Override alignment of stack
3951         arg calculated from its type with the alignment given by
3952         FUNCTION_ARG_BOUNDARY.
3953         (store_one_arg): Likewise.
3955 2005-01-11  Jan Beulich  <jbeulich@novell.com>
3957         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
3958         Change respective itanium_class attribute to ialu.
3959         (shladdp4_internal): New.
3960         * config/ia64/predicates.md (shladd_log2_operand): New.
3962 2005-01-11  Richard Henderson  <rth@redhat.com>
3964         * expr.c (store_constructor): Use rtvec_alloc instead of
3965         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
3967 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
3969         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
3971 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
3973         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
3974         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
3975         (TARGET_RWRELOC): Define.
3976         (ia64_rwreloc_section_type_flags): Delete.
3977         (ia64_section_type_flags): New function.
3978         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
3979         (TARGET_RWRELOC): Define.
3981 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
3983         PR target/18987
3984         * config/ia64/ia64.c (process_set): For alloc insn, only call
3985         process_epilogue is !frame_pointer_needed.
3987 2005-01-10  Roger Sayle  <roger@eyesopen.com>
3989         PR c++/19355
3990         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
3991         unary operator and can't be treated as a binary/comparison operator.
3993 2005-01-10  Richard Henderson  <rth@redhat.com>
3995         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
3996         (ix86_return_in_memory): Likewise.
3997         (function_arg_advance):  Likewise.  Mirror structure in function_arg
3998         for choosing register to advance.
4000 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
4002         * tree-vectorizer.c, tree.def: Fix comment typos.
4004 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
4006         * config/s390/s390.c (struct processor_costs): 4 new fields:
4007         ddbr, ddr, debr, der.
4008         (s390_rtx_costs): More precise handling of divide instructions.
4010 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
4012         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
4014 2005-01-10  Jan Beulich  <jbeulich@novell.com>
4016         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
4017         names resulting from -ffunction-sections/-fdata-sections and linkonce
4018         ones.
4019         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
4020         based on the section name. Rearrange the section name comparison logic
4021         slightly so that each section name is compared against at most once.
4023 2005-01-10  Ben Elliston  <bje@au.ibm.com>
4025         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
4026         targets for which -fPIC reduces limitations on the GOT size.
4028 2005-01-09  Falk Hueffner  <falk@debian.org>
4030         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
4031         X/C1 cmpop C2.
4033 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
4035         PR target/18720
4036         * collect2.c (main): Set aixrtl_flag for -brtl option.
4037         (resolve_lib_name): Search for .so file extension before .a
4038         if aixrtl_flag set.
4040 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
4042         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
4043         (vect_analyze_data_refs_alignment): Add dump prints.
4045 2005-01-09  Ira Rosen  <irar@il.ibm.com>
4047         * tree-vectorizer.c (vect_analyze_offset_expr): Use
4048         expr_invariant_in_loop_p.
4049         Initialize outputs first thing in the function.
4050         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
4051         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
4052         (vect_analyze_pointer_ref_access): Check that the initial condition of
4053         the access function is loop invariant.
4055 2005-01-09  Richard Henderson  <rth@redhat.com>
4057         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
4058         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
4059         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
4060         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
4061         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
4062         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
4063         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
4064         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
4065         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
4066         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
4067         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
4068         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
4069         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
4070         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
4071         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
4072         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
4073         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
4074         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
4075         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
4076         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
4077         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
4078         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
4079         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
4080         mmx_ prefix.
4081         (mmx_clrdi, pavgusb): Remove.
4082         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
4083         with leading sse_ prefix.
4084         * config/i386/sse.md: Receive them.
4085         * config/i386/mmx.md: New file.
4086         (MMXMODE12, MMXMODE24, mmxvecsize): New.
4087         (subrv2sf3): Turn into expander for normal subtraction.
4088         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
4089         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
4090         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
4091         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
4092         commutative; use ix86_binary_operator_ok.
4093         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
4094         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
4095         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
4096         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
4097         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
4098         Macroize from existing patterns; use ix86_binary_operator_ok.
4099         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
4100         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
4101         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
4102         with vec_select+vec_concat.
4103         (mmx_pshufw, mmx_pshufw_1): Likewise.
4104         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
4105         (mmx_uavgv4hi3): Model correctly.
4106         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
4107         _mm_xor_si64): Remove casts.
4109 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
4111         PR tree-optimization/19224
4112         * tree-scalar-evolution.c (get_instantiated_value,
4113         set_instantiated_value): New functions.
4114         (instantiate_parameters_1): Cache the results.
4115         (instantiate_parameters, resolve_mixers): Initialize and free
4116         the cache.
4118 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
4120         * config/i386/i386.md (addhi_4): Correct reference in comment.
4121         (addqi_4): Same.
4123 2005-01-08  Richard Henderson  <rth@redhat.com>
4125         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
4126         (_mm_cvtsi128_si64x): Likewise.
4127         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
4128         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
4129         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
4130         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
4131         * config/i386/i386-protos.h: Update.
4132         * config/i386/i386.c (print_operand): Add 'H'.
4133         (ix86_fixup_binary_operands): Split out from ...
4134         (ix86_expand_binary_operator): ... here.
4135         (ix86_fixup_binary_operands_no_copy): New.
4136         (ix86_expand_fp_absneg_operator): Handle vector mode results.
4137         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
4138         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
4139         (safe_vector_operand): Use CONST0_RTX.
4140         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
4141         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
4142         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
4143         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
4144         special cases.
4145         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
4146         (IX86_BUILTIN_CMPNGESS): New.
4147         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
4148         (attr type): Add sselog1.
4149         (attr unit, attr memory): Handle it.
4150         (movti, movti_internal, movti_rex64): Move near other integer moves.
4151         (movtf, movtf_internal): Move near other fp moves.
4152         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
4153         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
4154         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
4155         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
4156         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
4157         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
4158         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
4159         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
4160         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
4161         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
4162         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
4163         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
4164         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
4165         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
4166         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
4167         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
4168         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
4169         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
4170         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
4171         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
4172         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
4173         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
4174         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
4175         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
4176         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
4177         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
4178         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
4179         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
4180         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
4181         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
4182         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
4183         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
4184         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
4185         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
4186         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
4187         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
4188         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
4189         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
4190         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
4191         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
4192         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
4193         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
4194         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
4195         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
4196         same time.
4197         (SSEPUSH, push<SSEPUSH>): Remove.
4198         (MMXPUSH, push<MMXPUSH>): Remove.
4199         (sse_movaps, sse_movaps_1, sse_movups): Remove.
4200         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
4201         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
4202         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
4203         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
4204         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
4205         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
4206         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
4207         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
4208         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
4209         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
4210         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
4211         (ppro_sse_log_V4SF): Handle sselog1.
4212         * config/i386/predicates.md (const_0_to_1_operand): New.
4213         (const_0_to_255_mul_8_operand): New.
4214         (const_1_to_31_operand): Rename from const_int_1_31_operand.
4215         (const_2_to_3_operand, const_4_to_7_operand): New.
4216         * config/i386/sse.md: New file.
4217         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
4218         (sse_movups): Rename from sse_movups_1.
4219         (sse_loadlss): Rename from sse_loadss_1.
4220         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
4221         from the name.
4222         (negv4sf2): Use ix86_expand_fp_absneg_operator.
4223         (absv4sf2, negv2df, absv2df): New.
4224         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
4225         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
4226         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
4227         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
4228         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
4229         (sse3_addsubv4sf3): Model correctly.
4230         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
4231         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
4232         (sse_movhlps): Model with vec_select+vec_concat.
4233         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
4234         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
4235         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
4236         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
4237         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
4238         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
4239         sse2_pshufhw_1): Likewise.
4240         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
4241         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
4242         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
4243         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
4244         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
4245         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
4246         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
4247         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
4248         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
4249         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
4250         sminv8hi3): Mark commutative
4251         operands.  Use ix86_binary_operator_ok.
4252         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
4253         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
4254         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
4255         sse2_punpcklqdq): Allow operand2 in memory.
4256         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
4257         sse2_movsd): Add memory alternatives.
4258         (sse_storelps): Turn expander into an insn; split after reload.
4259         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
4260         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
4262 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
4264         * configure.ac (DWARF-2 debug_line): Use objdump.
4265         * configure: Regenerate.
4267 2005-01-08  Jeff Law  <law@redhat.com>
4268             Diego Novillo  <dnovillo@redhat.com>
4270         PR tree-optimization/18241
4271         * tree-nrv.c (tree_nrv): Ignore volatile return values.
4272         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
4273         statements with volatile operands.
4274         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
4275         operands after marking a statement with has_volatile_ops.
4277 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4279         * tree.c (int_fits_type_p): Always honor integer constant
4280         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
4282 2005-01-08  Roger Sayle  <roger@eyesopen.com>
4284         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
4285         the latent bug in rtl_delete_block has been resolved.
4287 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4289         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
4290         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
4292 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
4294         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
4295         library as @multilib_dir@/$(SHLIB_SONAME).
4297 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
4299         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
4300         * configure: Regenerate.
4302 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4304         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
4305         TYPE_MODE.
4307 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
4309         PR target/13674
4310         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
4311         Convert non-word aligned offset address using ld/std into
4312         indirect address.
4314 2005-01-07  Richard Henderson  <rth@redhat.com>
4316         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
4318 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
4320         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
4322 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
4324         PR tree-optimization/19283
4325         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
4326         is not shorter than the original type.
4328         PR rtl-optimization/19012
4329         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
4331         PR rtl-optimization/18861
4332         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
4333         (FULL_STATE): Define.
4334         (mark_tablejump_edge): New function.
4335         (purge_dead_tablejump_edges): New function.
4336         (find_bb_boundaries): Use it.
4338         PR tree-optimization/18828
4339         * builtins.c (expand_builtin_next_arg): Remove argument and all
4340         the argument checking.
4341         (expand_builtin): Adjust caller.
4342         (expand_builtin_va_start): Likewise.  Remove error for too many
4343         arguments.
4344         (fold_builtin_next_arg): Issue error for too many arguments.
4345         After checking arguments, replace them with magic arguments that
4346         prevent further checking of the args.
4348 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4350         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
4352 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4354         PR target/6077
4355         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
4356         and %{.S:...} (and their negative variants) to test whether the
4357         input file is assembler or pre-processed-assembler independent of
4358         the actual filename extension.
4360 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4362         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
4363         of sign or zero extended values.
4365 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
4367         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
4368         for IBM long double format correctly.
4370 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
4372         Fix PR tree-optimization/18792
4374         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
4375         to first_loop_depth, and use loop depth instead of loop number.
4376         (build_classic_dir_vector): Ditto.
4377         (compute_data_dependences_for_loop): Use depth, not loop number.
4378         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
4379         number. Pass in loops, instead of loop numbers.
4380         (gather_interchange_stats): Ditto.
4381         (linear_transform_loops): Ditto.
4383 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
4385         PR rtl-opt/13299
4386         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
4387         biv_fits_mode_p, extension_within_bounds_p): New functions.
4388         (check_ext_dependent_givs): Use them.
4390 2005-01-06  Roger Sayle  <roger@eyesopen.com>
4392         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
4393         more than one barrier, in which case we should delete them all.
4395 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
4397         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
4399 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
4401         Fix PR middle-end/19286
4402         Fix PR debug/19267
4403         * dwarf2out.c (gen_subprogram_die): If we've already tried to
4404         output this subprogram, simply ignore this attempt to do it again.
4405         (add_abstract_origin_attribute): Don't abort trying to add the abstract
4406         origin attribute if it's not possible.
4407         (gen_block_die): Don't ignore subblocks of "unused" blocks.
4408         (decls_for_scope): Ditto.
4409         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
4410         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
4412 2005-01-05  Richard Henderson  <rth@redhat.com>
4414         PR target/11327
4415         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
4416         (bdesc_2arg): Use it.
4417         (ix86_expand_binop_builtin): Force operands into registers
4418         when optimizing.
4419         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
4420         ix86_expand_sse_compare, ix86_expand_sse_comi,
4421         ix86_expand_builtin): Likewise.
4423 2005-01-05  Richard Henderson  <rth@redhat.com>
4425         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
4426         and VEC_SELECT.
4427         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
4428         (mulv4hi3): Set itanium_class mmmul.
4429         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
4430         (fpack): Rename from fpack_sfsf.
4432 2005-01-05  Richard Henderson  <rth@redhat.com>
4434         PR rtl-opt/10692
4435         * reload1.c (do_input_reload): Restrict the optimization deleteing
4436         a previous output reload to RELOAD_FOR_INPUT.
4438 2005-01-05  Steven Bosscher  <stevenb@suse.de>
4440         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
4441         comment that we fall through after case.
4442         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
4443         (distribute_links): Likewise.
4444         * cse.c (cse_insn): Likewise.
4445         * cselib.c (cselib_invalidate_mem): Likewise.
4446         * df.c: Update comments at the top of the file.
4447         (read_modify_subreg_p): Update comments here too.
4448         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
4449         * flow.c (mark_set_1): Likewise.
4450         (mark_used_regs): Likewise.
4451         * gcse.c (mems_conflict_for_gcse_p): Likewise.
4452         (canon_list_insert): Likewise.
4453         (mark_set): Likewise.
4454         (try_replace_reg): Likewise.
4455         (store_killed_in_insn): Likewise.
4456         * loop.c (count_one_set): Likewise.
4457         (basic_induction_var): Likewise.
4458         * postreload-gcse.c (find_mem_conflicts): Likewise.
4459         * postreload.c (reload_combine_note_store): Likewise.
4460         (move2add_note_store): Likewise.
4461         * reload.c (find_equiv_reg): Likewise.
4462         (mark_referenced_resources): Likewise.
4463         * rtlanal.c (set_noop_p): Likewise.
4464         (note_stores): Likewise.
4465         (note_uses): Likewise.
4466         * sched-deps.c (sched_analyze_1): Likewise.
4467         * sched-rgn.c (check_live_1): Likewise.
4468         (update_live_1): Likewise.
4469         * config/i860/i860.c: Likewise.
4471         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
4472         an lvalue.
4473         (ZERO_EXTRACT): Mention that this one can be an lvalue.
4475         * doc/rtl.texi: Update documentation for bit-fields and SET.
4477 2005-01-05  Roger Sayle  <roger@eyesopen.com>
4479         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
4481 2005-01-05  Jan Hubicka  <jh@suse.cz>
4482             Richard Henderson  <rth@redhat.com>
4484         PR target/18910
4485         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
4486         with an offset.
4488 2005-01-05  Richard Henderson  <rth@redhat.com>
4490         PR target/12902
4491         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
4492         (sse_shufps): Change operand 3 to const_int_operand.
4493         (sse2_storelps): Fix typo in template.
4494         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
4495         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
4496         (ix86_expand_builtin): Likewise.
4498 2005-01-05  Julian Brown  <julian@codesourcery.com>
4500         * config/arm/arm.c (arm_return_in_memory): Treat complex types
4501         as aggregates for AAPCS ABIs.
4503 2005-01-05  Stan Shebs  <shebs@apple.com>
4505         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
4506         Mach-O getters if ppc64.
4507         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
4508         size argument.
4509         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
4510         signed four-byte field for global code case.
4511         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
4513 2005-01-05  Roger Sayle  <roger@eyesopen.com>
4515         PR middle-end/19100
4516         * c-common.c: Include real.h.
4517         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
4518         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
4519         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
4520         * Makefile.in (c-common.o): Update dependencies.
4522 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4524         * c-parse.in (asm_string): Add trailing semicolon.
4526 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4528         * c-parse.in (asm_string): New.  Don't allow wide strings in
4529         'asm'.
4530         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
4531         asm_string instead of STRING.
4533 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
4535         * c-typeck.c (constructor_no_implicit): Remove.
4536         (set_designator, process_init_element): Don't check
4537         constructor_no_implicit.
4539 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
4540             Kaz Kojima  <kkojima@gcc.gnu.org>
4542         PR target/16482
4543         * lcm.c (create_pre_exit): New.
4544         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
4545         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
4547 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
4549         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
4550         -msoft-float in target_float_switch.
4551         * arm.c (arm_override_options): Fix processing of target_float_switch.
4553 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
4555         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
4556         preferencing.
4558 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
4560         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
4561         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
4563 2005-01-04  Roger Sayle  <roger@eyesopen.com>
4565         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
4566         if deleting the then-block allows the test-block to fallthru to the
4567         else-block.
4569 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
4571         PR c/19152
4572         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
4573         after the full declaration if the are in two different TUs.
4575 2005-01-04  Richard Henderson  <rth@redhat.com>
4577         PR tree-opt/19158
4578         * tree-sra.c (generate_one_element_init): Just
4579         call gimplify_and_add.
4580         (generate_element_init): Record the
4581         new referenced variables and mark them for renaming
4582         and split out to ...
4583         (generate_element_init_1): This.
4584         (scalarize_init): Don't call push_gimplify_context/
4585         pop_gimplify_context.
4587 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
4589         * toplev.c (get_src_pwd): Handle failure of getpwd().
4591 2005-01-04  Roger Sayle  <roger@eyesopen.com>
4593         * fold-const.c (fold_single_bit_test): Delete unreachable handling
4594         of TRUTH_NOT_EXPR.
4595         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
4596         all the cases handled by it are inverted by invert_truthvalue.
4598 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4600         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
4601         (save_register_windowsi): Likewise.
4603 2005-01-04  Richard Henderson  <rth@redhat.com>
4605         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
4607 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
4609         PR middle-end/17767
4610         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
4611         any simplifications of vector mode comparison operators.
4612         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
4614 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
4615             Devang Patel  <dpatel@apple.com>
4617         PR tree-optimization/18308
4618         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
4619         the operands before creating a new expression.
4620         * dojump.c (do_jump): Make drop_through_label available
4621         for all cases.  Add expansion of COND_EXPR.
4623 2005-01-04  Ira Rosen  <irar@il.ibm.com>
4625         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
4626         INTEGER_CST instead of TREE_CONSTANT.
4627         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
4628         instead of TREE_CONSTANT.
4629         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
4630         instead of TREE_CONSTANT.
4632 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
4634         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
4636 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
4638         PR target/19240
4639         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
4640         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
4642 2005-01-03  Richard Henderson  <rth@redhat.com>
4644         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
4645         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
4646         fold_convert_const_real_from_real): Split out from ...
4647         (fold_convert_const): ... here.
4649 2005-01-03  Richard Henderson  <rth@redhat.com>
4651         PR target/19235
4652         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
4653         (mov<MMXMODEI>_internal): Likewise.
4654         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
4655         Add V2SF case; use it for SSE1; don't use TI.
4656         (movdf_integer): Likewise.
4657         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
4659 2005-01-03  Ira Rosen  <irar@il.ibm.com>
4661         * tree-vectorizer.c (vect_strip_conversions): New function.
4662         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
4663         check for binary class.
4665 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
4667         Fix PR debug/17924
4668         Fix PR debug/19191
4669         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
4670         is a decl.
4671         * gimple-low.c (mark_blocks_with_used_vars): New function.
4672         (mark_blocks_with_used_subblocks): Ditto.
4673         (mark_used_blocks): Ditto.
4674         (pass_mark_used_blocks): New pass.
4675         * tree-inline.c: Include debug.h.
4676         (expand_call_inline): Call outlining_inline_function here.
4677         * tree-optimize.c (init_tree_optimization_passes): Add
4678         pass_mark_used_blocks.
4679         * tree-pass.h (pass_mark_used_blocks): New.
4680         * Makefile.in (tree-inline.o): Add debug.h dependency.
4682 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
4684         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
4685         VAR_DECLs to have weak_import attribute.
4687         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
4688         'struct ucontext'.
4690 2004-01-03  Steven Bosscher  <stevenb@suse.de>
4692         * passes.c (rest_of_compilation): Don't run regmove if only
4693         flag_expensive_optimizations, require flag_regmove instead.
4695 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4697         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
4698         register "sparc".
4699         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
4700         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4701         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
4702         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
4704 2005-01-03  Richard Henderson  <rth@redhat.com>
4706         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
4707         (ia64_const_ok_for_letter_p): New.
4708         (ia64_const_double_ok_for_letter_p): New.
4709         (ia64_extra_constraint): New.
4710         (ia64_expand_vecint_compare): New.
4711         (ia64_expand_vcondu_v2si): New.
4712         (ia64_expand_vecint_cmov): New.
4713         (ia64_expand_vecint_minmax): New.
4714         (ia64_print_operand): Add 'v'.
4715         (ia64_preferred_reload_class): New.
4716         (ia64_vector_mode_supported_p): New.
4717         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
4718         (PREFERRED_RELOAD_CLASS): Move to function.
4719         (CONST_OK_FOR_LETTER_P): Move to function.
4720         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
4721         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
4722         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
4723         (EXTRA_CONSTRAINT): Move to function.
4724         * config/ia64/ia64.md: Include vect.md.
4725         (itanium_class): Add mmalua.
4726         (type): Handle it.
4727         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
4728         (1b_mmalua): New.
4729         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
4730         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
4731         CONST0_RTX.
4732         (const_int_2bit_operand): New.
4733         (fr_reg_or_0_operand): New.
4734         * config/ia64/ia64-modes.def: Add vector modes.
4735         * config/ia64/ia64-protos.h: Update.
4736         * config/ia64/vect.md: New file.
4738 2005-01-03  Richard Henderson  <rth@redhat.com>
4740         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
4742 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
4744         PR target/19236
4745         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
4746         to SFmode.
4747         (log1pdf2): Change mode of operands[0,1] to DFmode.
4749 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
4751         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
4752         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
4753         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
4754         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
4755         SPARC_RELAXED_ORDERING.
4757 2005-01-03  Richard Henderson  <rth@redhat.com>
4758             Uros Bizjak  <uros@kss-loka.si>
4760         PR target/14631
4761         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
4762         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
4763         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
4764         handling.
4765         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
4766         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
4767         const_pow2_1_to_128_operand): New predicates.
4769 2005-01-02  Greg McGary  <greg@mcgary.org>
4771         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
4772         anonymous decls.
4773         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
4774         object.  [ptr_type]: Remove unused variable.
4775         Remember nearest addressable array-element or record-component
4776         when checking bitfield components.  Tolerate empty BIND_EXPR.
4778 2005-01-01  Richard Henderson  <rth@redhat.com>
4780         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
4781         that don't narrow the value.  Fail for other conversions.
4783 2005-01-01  Richard Henderson  <rth@redhat.com>
4785         PR c/19031
4786         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
4787         * c-lang.c (finish_file): Don't do it here.
4788         * objc/objc-act.c (objc_finish_file): Likewise.
4790         * cgraph.c (decl_assembler_name_equal): New.
4791         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
4792         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
4793         * cgraph.h (struct cgraph_varpool_node): Add next.
4794         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
4795         * varasm.c (assemble_alias): Mark the target as needed.
4797 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
4799         PR middle-end/19221
4800         * function.c (get_arg_pointer_save_area): Use entry_of_function
4801         instead of get_insns.
4803 2005-01-01  Roger Sayle  <roger@eyesopen.com>
4804             Andrew Pinski  <pinskia@physics.uc.edu>
4805             James E. Wilson  <wilson@specifixinc.com>
4807         PR rtl-optimization/12092
4808         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
4809         is zero.
4811 2005-01-01  Roger Sayle  <roger@eyesopen.com>
4812             Olivier Hainque  <hainque@act-europe.fr>
4814         * tree.c (int_fits_type_p): A narrower type always fits in a
4815         wider one, except for negative values into unsigned types.
4817 2005-01-01  Roger Sayle  <roger@eyesopen.com>
4819         * tree.c (int_fits_type_p): Compare the result of force_fit_type
4820         with the original constant rather than require TREE_OVERFLOW.
4822 2005-01-01  Steven Bosscher  <stevenb@suse.de>
4824         PR middle-end/17544
4825         * c-decl.c (finish_function): If compiling C99, annotate the
4826         compiler generated return with the current file name and line 0.
4827         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
4828         the source line is greater than 0.
4829         (remove_bb): Likewise.
4831 See ChangeLog.12 for earlier changes.