OSDN Git Service

PR 18785
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
2
3         PR 18785
4         * langhooks.h (struct lang_hooks): Add to_target_charset.
5         * langhooks.c (lhd_to_target_charset): New function.
6         * langhooks-def.h: Declare lhd_to_target_charset.
7         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
8         (LANG_HOOKS_INITIALIZER): Update.
9         * c-common.c (c_common_to_target_charset): New function.
10         * c-common.h: Declare it.
11         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
12         c_common_to_target_charset.
13
14         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
15         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
16         Delete definitions.
17         * system.h: Poison them.
18         * doc/tm.texi: Don't discuss them.
19         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
20         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
21         (pp_c_char): Do not attempt to generate letter escapes for
22         newline, tab, etc.
23         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
24         * config/mips/mips.c (mips_output_ascii): Likewise.
25
26 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
27
28         PR tree-optimization/19951
29         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
30         is abnormal.
31
32 2005-02-19  Steven Bosscher  <stevenb@suse.de>
33
34         PR middle-end/19698
35         * function.h (struct function): New field `max_loop_depth'.
36         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
37         (flow_loops_find): Reset the max loop depth count before finding loops.
38         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
39         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
40         (calculate_global_regs_live): Make sure the loop will terminate
41         when the initial sets are not empty.
42
43 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
44
45         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
46         object inside.
47         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
48
49 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
50
51         PR other/19525
52         * doc/invoke.texi: Remove documentation of %M spec.
53         * gcc.c: Likewise.
54         (init_spec): Remove %M suffix from -lgcc_s.
55         (do_spec_1): Remove 'M' case.
56         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
57         to put shared libraries in the multilib directory.  Remove the
58         shlib_so_soname substitution variable.  Don't add a multilib encoding
59         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
60         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
61         SHLIB_INSTALL as well as SHLIB_LINK.
62         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
63         (SHLIB_NAME): Delete.
64         (SHLIB_DIR): New macro.
65         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
66         (SHLIB_INSTALL): Adjust accordingly.
67         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
68         * config/t-slibgcc-sld: Likewise.
69         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
70         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
71         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
72         in $(SHLIB_DIR).
73         (SHLIBUNWIND_INSTALL): Adjust accordingly.
74         * config/i386/t-nwld (SHLIB_SONAME): Delete.
75         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
76         Use @shlib_base_name@ instead of @shlib_so_name@.
77         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
78         and @shlib_base_name@.so in @multilib_dir@.
79         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
80         to the install path.
81         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
82         (SHLIB_LINK): Remove previous workaround.
83         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
84         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
85         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
86         the install path.
87         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
88         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
89         (SHLIB_INSTALL): Adjust accordingly.
90         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
91         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
92         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
93         config/t-slibgcc-elf-ver.
94
95 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
96             Jakub Jelinek  <jakub@redhat.com>
97
98         PR tree-optimization/19828
99         * tree-ssa-loop-im.c: Add a TODO comment.
100         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
101         without side-effects.
102
103 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
104
105         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
106         call fold_convert.
107
108 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
109
110         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
111         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
112         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
113         functions.
114         (ia64_reorg): Delete fixup_errata call.
115         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
116         (TARGET_SWITCHES): Delete -mb-step entry.
117
118 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
119
120         PR c/20043
121         * c-typeck.c (composite_type): Handle quals in transparent unions.
122         (type_lists_compatible_p): Likewise.
123
124 2005-02-18  Stan Shebs  <shebs@apple.com>
125
126         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
127         expressions in the .literal8 section.
128
129 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
130
131         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
132
133 2005-02-18  Roger Sayle  <roger@eyesopen.com>
134
135         * fold-const.c (constant_boolean_node): Always create values of the
136         specified type, don't bother calling truthvalue_conversion.
137
138 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
139
140         * except.c (output_function_exception_table): Call
141         assemble_external_libcall (eh_personality_libfunc).
142
143 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
144
145         PR target/19886
146         * config/ia64/ia64.h (struct machine_function): Add state_num.
147         * config/ia64/ia64.c (process_epilogue,
148         process_for_unwind_directive): Use new unwind state numbers each
149         time rather than state 1.
150
151 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
152
153         PR target/20054
154         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
155         before the "*llgt_didi" pattern.
156
157 2005-02-18  Jason Merrill  <jason@redhat.com>
158
159         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
160
161 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
162
163         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
164         (div0): Use it in place of ARM_FUNC_ALIAS.
165         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
166
167 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
168
169         PR middle-end/20030
170         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
171         access, the lower bound of the array type if it exists.
172
173 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
174
175         PR c++/20008
176         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
177         cases that are out-of-range for the index type.
178
179 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
180
181         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
182         (estimate_case_costs): Don't call convert.
183         * expmed.c (expand_shift): Likewise.
184         (make_tree): Call fold_convert instead of convert.
185
186 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
187
188         PR c++/19813
189         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
190         that ref to be marked MEM_READONLY_P doesn't have base that needs
191         constructing.
192
193 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
194
195         * genautomata.c (output_get_cpu_unit_code_func,
196         output_cpu_unit_reservation_p): Don't generate old-style function
197         definitions.
198
199 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
200
201         PR c++/20023
202         PR tree-optimization/20009
203         * convert.c (convert_to_integer): Revert 2005-02-16 change.
204
205         PR tree-optimization/18947
206         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
207         inline, remove all nodes that are inlined into the extern inline
208         being redefined.
209
210 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
211
212         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
213         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
214         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
215         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
216         Update copyright.
217
218 2005-02-17  Roger Sayle  <roger@eyesopen.com>
219
220         PR tree-optimization/19917
221         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
222         to be potentially trapping.
223
224 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
225
226         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
227
228 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
229
230         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
231         tem becomes a local variable which is set to the value of the
232         back end defined INITIAL_FRAME_ADDRESS macro.
233         (expand_builtin_frame_address): Omit the base parameter to
234         expand_builtin_return_addr.
235         (expand_builtin_profile_func): Likewise.
236         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
237         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
238         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
239
240 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
241
242         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
243         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
244         * config/frv/frv.c (frv_function_epilogue): Likewise.
245
246 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
247
248         * lambda-code (perfect_nestify): Remove mark/unmark
249         for rewriting hack.
250         * tree-loop-linear.c (linear_transform_loops): Add
251         rewrite_into_ssa call so that ssa is correct for
252         rewriting into loop closed.
253
254 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
255
256         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
257         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
258         BITMAP_FREE.
259         * bt-load.c (btr_def_live_range, combine_btr_defs,
260         migrate_btr_def, migrate_btr_defs): Likewise.
261         * cfgcleanup.c (thread_jump): Likewise.
262         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
263         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
264         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
265         df_rd_local_compute, df_reg_info_compute): Likewise.
266         * dominance.c (init_dom_info, free_dom_info): Likewise.
267         * flow.c (init_propagate_block_info,
268         free_propagate_block_info): Likewise.
269         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
270         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
271         modify_reg_pav): Likewise.
272         * loop-invariant.c (find_defs, find_invariant_insn,
273         find_invariants, free_inv_motion_data): Likewise.
274         * predict.c (tree_predict_by_opcode,
275         estimate_bb_frequencies): Likewise.
276         * stmt.c (expand_case): Likewise.
277         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
278         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
279         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
280         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
281         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
282         rewrite_ssa_into_ssa): Likewise.
283         * tree-optimize.c (tree_rest_of_compilation): Likewise.
284         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
285         analyze_edges_for_bb, perform_edge_inserts): Likewise.
286         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
287         * tree-sra.c (tree_sra): Likewise.
288         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
289         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
290         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
291         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
292         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
293         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
294         Likewise.
295         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
296         calculate_live_on_entry, calculate_live_on_exit,
297         build_tree_conflict_graph): Likewise.
298         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
299         record_important_candidates, set_use_iv_cost, find_depends,
300         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
301         tree_ssa_iv_optimize_finalize): Likewise.
302         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
303         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
304         tree_duplicate_loop_to_header_edge): Likewise.
305         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
306         * tree-ssa.c (verify_flow_insensitive_alias_info,
307         verify_name_tags, verify_ssa, init_tree_ssa,
308         delete_tree_ssa): Likewise.
309         * tree-ssanames.c (marked_ssa_names, init_ssanames,
310         fini_ssanames): Likewise.
311         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
312
313 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
314
315         * config/rs6000/t-rtems: Completely reworked.
316
317 2005-02-17  Ira Rosen  <irar@il.ibm.com>
318
319         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
320
321 2005-02-17  Ira Rosen  <irar@il.ibm.com>
322
323         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
324         POINTER_TYPE_P when checking that type is a pointer.
325         (vect_get_memtag): Remove.
326         (vect_address_analysis): Use POINTER_TYPE_P. Call
327         vect_object_analysis with dummy parameter for memtag.
328         (vect_object_analysis): Extract memtag (functionality that
329         used to be in vect_get_memtag and moved here). Fix printings.
330         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
331         with correct parameters. Remove call to vect_get_memtag.
332
333 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
334
335         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
336         (tree-vectorizer.o): Added missing dependencies.
337
338         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
339         decleration.
340         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
341         declaration in tree-vectorizer.c, now has an extern declaration in
342         tree-vectorizer.h).
343         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
344         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
345         get_vectype_for_scalar_type, vect_is_simple_use,
346         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
347         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
348         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
349         vectorizable_store, vectorizable_operation, vectorizable_assignment,
350         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
351         find_loop_location): Likewise.
352
353         * tree-vectorizer.c (langhooks.h): #include removed.
354         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
355         moved to tree-vectorized.h.
356         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
357         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
358         get_vectype_for_scalar_type, vect_is_simple_use,
359         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
360         vect_supportable_dr_alignment, new_loop_vec_info,
361         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
362         vect_set_verbosity_level, find_loop_location): Likewise.
363
364         (vect_analyze_loop): Function externalized. Declaration moved to
365         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
366         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
367         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
368         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
369         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
370         vect_enhance_data_refs_alignment, vect_analyze_operations,
371         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
372         vect_stmt_relevant_p, vect_get_loop_niters,
373         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
374         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
375         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
376         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
377         vect_get_memtag): Likewise.
378
379         (vectorizable_load): Function externalized. Declaration moved to
380         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
381         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
382         vect_transform_loop): Likewise.
383         (vect_transform_stmt): Moved to tree-vect-transform.c.
384         (vect_align_data_ref, vect_create_destination_var,
385         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
386         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
387         vect_get_vec_def_for_operand, vect_init_vector,
388         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
389         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
390         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
391         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
392         vect_do_peeling_for_loop_bound): Likewise.
393
394         * tree-vect-analyze.c: New file.
395         * tree-vect-transform.c: New file.
396
397 2005-02-17  Jason Merrill  <jason@redhat.com>
398
399         PR mudflap/19319, c++/19317
400         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
401         slot explicit.
402
403 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
404
405         * doc/install.texi (Specific): Update link for Darwin-specific
406         tool binary site.
407
408 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
409
410         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
411         constant_boolean_node.
412
413 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
414
415         PR target/19019
416         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
417         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
418
419 2005-02-16  Richard Henderson  <rth@redhat.com>
420
421         PR 19920
422         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
423         with W_TYPE_SIZE.
424         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
425         replace uses with Wtype_MAXp1_F.
426         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
427         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
428         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
429         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
430         and HAVE_TFMODE as appropriate.
431         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
432         (__floatdisf): Likewise.
433         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
434         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
435         (Wtype_MAXp1_F): New.
436         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
437         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
438
439 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
440
441         * PR target/19162
442         * arm.c (arm_apply_result_size): New function.
443         * arm.h (APPLY_RESULT_SIZE): Define.
444         * arm-protos.h (arm_apply_result_size): Add prototype.
445         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
446         (movxf): New expand.
447         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
448         (call_value_symbol): Remove predicate for operand 0.
449         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
450         (untyped_call): Rework to correclty return values for any type.
451         (untyped_return): New expand.
452         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
453
454 2005-02-16  Stan Shebs  <shebs@apple.com>
455
456         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
457         * config/rs6000/t-darwin8: New, for 64-bit multilib.
458
459 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
460
461         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
462         configure settings on Solaris 7 and later.
463
464 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
465
466         PR tree-optimization/19865
467         * tree-optimize.c (init_tree_optimization_passes): Run
468         pass_may_alias after pass_sra.
469
470 2005-02-16  Richard Henderson  <rth@redhat.com>
471             Stuart Hastings  <stuart@apple.com>
472
473         PR debug/19521
474         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
475         Do nothing if debug info suppressed for this function.
476         (dbxout_begin_function): Early exit if debug info suppressed for
477         this function.
478
479 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
480
481         PR target/20007
482         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
483         find_basic_blocks.
484         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
485
486         PR tree-optimization/19967
487         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
488         expand_builtin_strchr, expand_builtin_strrchr): Take a new
489         argument TYPE.  Adjust calls to fold_builtin_XXX.
490         (expand_builtin, fold_builtin_1): Adjust calls to
491         expand_builtin_XXX.
492         (fold_builtin_strchr, fold_builtin_strpbrk,
493         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
494         result to a requested type TYPE.
495
496 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
497
498         PR middle-end/19857
499         * fold-const.c (fold): Don't optimize (T)(x & cst) to
500         (T)x & (T)cst if (T)cst overflows.
501         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
502         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
503
504 2005-02-15  Jeff Law  <law@redhat.com>
505
506         * gcse.c (blocks_with_calls): New bitmap.
507         (alloc_gcse_mem): Allocate it.
508         (free_gcse_mem): Free it.
509         (clear_modifY_mem_tables): Clear it.
510         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
511         when we encounter CALL_INSNs.
512         (compute_transp, case MEM): Handle blocks with calls separate
513         from blocks without calls.  Use bitmap iterators rather than
514         FOR_EACH_BB.
515
516 2005-02-15  Peter O'Gorman  <peter@pogma.com>
517
518         PR bootstrap/18810
519         * mklibgcc.in (vis_hide): Use a temporary object file, not
520         -o /dev/null.
521
522 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
523
524         PR target/19924
525         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
526         access optimization.
527
528 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
529             Alan Modra  <amodra@bigpond.net.au>
530
531         PR target/19019
532         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
533         (_xlqsub): Rename to __gcc_qsub.
534         (_xlqmul): Rename to __gcc_qmul.
535         (_xlqdiv): Rename to __gcc_qdiv.
536         Provide versioned symbol aliases with old names.
537         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
538         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
539         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
540         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
541         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
542
543 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
544
545         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
546         Fold ~(A - 1) and ~(A + -1) to -A.
547
548 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
549
550         PR pch/14940
551         PR target/19300
552         * config/host-linux.c (linux_gt_pch_use_address): Copy from
553         config/pa/pa-host.c:pa_gt_pch_use_address.
554
555 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
556
557         * tree-vn.c (get_value_handle): Make sure that given an
558         is_gimple_min_invariant expression, we always return it.
559
560 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
561
562         * passes.c (rest_of_handle_gcse): Fix a comment.
563
564 2005-02-15  Jeff Law  <law@redhat.com>
565
566         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
567         bitmap.
568         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
569         (canon_list_insert, record_last_mem_set_info): Similarly.
570         (clear_modify_mem_tables): Similarly.
571
572 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
573
574         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
575         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
576         config/mips/mips.md, config/rs6000/aix.h,
577         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
578
579 2005-02-15  Richard Henderson  <rth@redhat.com>
580
581         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
582         call to be best_edge.
583
584 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
585
586         * basic-block.h: Adjust the prototype for find_basic_blocks.
587         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
588         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
589         find_basic_blocks.
590
591         * flow.c (recompute_reg_usage): Remove all arguments.
592         * passes.c (rest_of_compilation): Adjust the call to
593         recompute_reg_usage.
594         * rtl.h: Adjust the prototype for recompute_reg_usage.
595
596 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
597
598         * tree-dump.c (dump_files): Update to reflect new member
599         of dump_file_info.
600         (dump_register): Add new argument.
601         Set glob name.
602         (dump_switch_p_1): Check against glob name if doglob was passed.
603         (dump_switch_p): Check against regular first, then glob if
604         we didn't have any hits on the dump name.
605         * tree-optimize.c (register_one_dump_file):
606         Pass in glob name as well.
607         * tree-pass.h (struct dump_file_info): Add glob
608         member.
609
610 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
611
612         PR preprocessor/16323
613         * doc/invoke.texi: Document that -Wendif-labels is on by default.
614
615 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
616
617         PR target/19019
618         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
619         (trunctfdf2_internal1): New.
620         (trunctfdf2_internal2): Renamed from trunctfdf2.
621
622 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
623
624         PR tree-optimization/19853
625         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
626
627 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
628
629         * passes.c (rest_of_handle_loop_optimize): Remove calls to
630         delete_dead_jumptables and cleanup_cfg.
631
632 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
633
634         * reload.c (find_reloads): Swap address_reloaded flags when
635         swapping commutative operands.
636
637 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
638
639         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
640         Use standard_iv_increment_position for computing the bsi position
641         for create_iv.
642         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
643         the bsi position.
644
645 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
646
647         PR target/17428
648         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
649         life range of hard registers.
650         * value-prof.c (insn_prefetch_values_to_profile): Only
651         scan normal insns.
652
653         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
654         profile in libcalls.
655
656 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
657
658         * bitmap.h (bitmap_and_compl_into): Return bool.
659         * bitmap.c (bitmap_and_compl_into): Return changed flag.
660
661 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
662
663         PR tree-optimization/19944
664         * fold-const.c (fold): Re-add ABS_EXPR folding.
665
666 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
667
668         PR target/19019
669         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
670         {TARGET,MASK}_XL_COMPAT.
671         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
672         MASK_XL_COMPAT.
673         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
674         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
675         TARGET_XL_COMPAT.
676         (rs6000_arg_partial_bytes): Same.
677         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
678         and XL compatibility enabled.
679         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
680         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
681         test to final condition.
682         (cmptf_internal2): New.
683         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
684         xl-compat.  Add TFmode information to description.
685
686 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
687
688         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
689
690 2005-02-13  Jason Merrill  <jason@redhat.com>
691
692         PR c++/16405
693         * fold-const.c (fold_indirect_ref_1): Split out from...
694         (build_fold_indirect_ref): Here.
695         (fold_indirect_ref): New fn.
696         * tree.h: Declare it.
697         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
698         (gimplify_modify_expr_rhs): Likewise.
699         (gimplify_expr): Likewise.
700
701 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
702
703         PR tree-optimization/14303
704         PR tree-optimization/15784
705         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
706         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
707         ABS_EXPR<x> != 0 to x != 0.
708
709 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
710
711         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
712         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
713         spelling conventions.
714
715         * passes.c (rest_of_handle_gcse): Don't run cse_main and
716         delete_trivially_dead_insns too many times.
717
718         * passes.c (rest_of_handle_gcse): Remove dead assignments to
719         tem and tem2.
720
721 2005-02-12  Ira Rosen  <irar@il.ibm.com>
722
723         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
724         (vect_is_simple_iv_evolution): Remove redundant parameter
725         and step check.
726         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
727         without last parameter.
728         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
729         Return pointer step. Call vect_is_simple_iv_evolution without
730         last parameter. Check only that the step is multiple of size
731         type. Remove stmt_vinfo updates.
732         (vect_get_memtag_and_dr): Remove.
733         (vect_get_memtag): New function.
734         (vect_address_analysis): New function.
735         (vect_object_analysis): New function.
736         (vect_analyze_data_refs): Call vect_object_analysis and
737         vect_get_memtag. Update stmt_vinfo fields.
738
739 2005-02-12  Ira Rosen  <irar@il.ibm.com>
740
741         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
742         exist and are objects. Remove checks for pointer.
743         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
744         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
745         (vect_create_data_ref_ptr): Likewise.
746         (vect_base_addr_differ_p): New function.
747         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
748         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
749         Don't set the DR_BASE_NAME field of data-ref.
750         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
751
752 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
753
754         * optabs.h (enum optab_index): Add new OTI_ldexp.
755         (ldexp_optab): Define corresponding macro.
756         * optabs.c (init_optabs): Initialize ldexp_optab.
757         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
758         patterns.
759         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
760         using ldexp_optab.
761         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
762         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
763
764         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
765         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
766         intrinsics.
767
768 2005-02-12  Ira Rosen  <irar@il.ibm.com>
769
770         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
771         to base_address.
772         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
773         stmt_vec_info.
774         (vect_get_base_and_offset): Always return an address.
775         (vect_create_addr_base_for_vector_ref): Remove treatment for
776         different data reference types.
777         (vect_compute_data_ref_alignment): Rename base to base_address in
778         stmt_vec_info. Get the object in order to force its alignment.
779         (vect_get_memtag_and_dr): Rename base to base_address in
780         stmt_vec_info. Extract the object for memtag analysis.
781
782 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
783
784         PR regression/19898.
785         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
786         changes cc_status, use apply modified_in_p to part of cc_status
787         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
788         body.
789
790 2005-02-11  Richard Henderson  <rth@redhat.com>
791
792         * tree-complex.c (expand_complex_libcall): New.
793         (expand_complex_multiplication): Use it for c99 compliance.
794         (expand_complex_division): Likewise.
795         * fold-const.c (fold_complex_add, fold_complex_mult): New.
796         (fold): Call them.
797         * builtins.c (built_in_names): Remove const.
798         * tree.c (build_common_builtin_nodes): Build complex arithmetic
799         builtins.
800         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
801         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
802         (built_in_names): Remove const.
803         * c-common.c (c_common_type_for_mode): Handle complex modes.
804         * flags.h, toplev.c (flag_complex_method): Rename from
805         flag_complex_divide_method.
806         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
807         __mulsc3, __muldc3, __mulxc3, __multc3): New.
808         * libgcc2.h: Declare them.
809         * libgcc-std.ver: Export them.
810         * mklibgcc.in (lib2funcs): Build them.
811
812 2005-02-11  Steven Bosscher  <stevenb@suse.de>
813
814         PR tree-optimization/19876
815         Partially revert my change from 2005-01-14
816         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
817         (compute_antic): ...and remove the loop here.
818
819 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
820
821         PR middle-end/19858
822         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
823         is number of inner's bits, avoid creating a BIT_FIELD_REF.
824
825         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
826         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
827
828 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
829
830         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
831         offsets for the big-endian 32-bit case.
832
833 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
834
835         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
836
837 2005-02-11  Dale Johannesen  <dalej@apple.com>
838
839         * cselib.c (cselib_process_insn):  Clear out regs where
840         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
841         * reload.c (find_equiv_reg): Ditto.
842
843 2005-02-11  Ian Lance Taylor  <ian@airs.com>
844
845         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
846         with no elements.
847
848         * tree.c (build_function_type_list): Work correctly if there are
849         no arguments.
850
851 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
852
853         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
854         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
855         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
856         TARGET_ZARCH instead of TARGET_64BIT.
857
858 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
859
860         * config/rs6000/t-rtems:
861         (MULTILIB_OPTIONS): Remove mcpu=602.
862         (MUTLILIB_DIRNAMES): Remove m602.
863         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
864         Let mcpu=602 match mcpu=603.
865         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
866
867 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
868
869         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
870         signal trampolines.
871
872 2005-02-10  David Daney  <ddaney@avtrex.com>
873
874         * config/alpha/linux-unwind.h: Add exception clause to copyright.
875         * config/i386/linux-unwind.h: Likewise.
876         * config/ia64/linux-unwind.h: Likewise.
877         * config/mips/linux-unwind.h: Likewise.
878         * config/pa/linux-unwind.h: Likewise.
879         * config/rs6000/linux-unwind.h: Likewise.
880         * config/s390/linux-unwind.h: Likewise.
881         * config/sh/linux-unwind.h: Likewise.
882         * config/sparc/linux-unwind.h: Likewise.
883
884 2005-02-10  Steven Bosscher  <stevenb@suse.de>
885
886         PR tree-optimization/17549
887         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
888         TER to replace a DEF with its expression if the DEF and the
889         rhs of the expression we replace into have the same root
890         variable.
891
892 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
893
894         * config/mips/mips.md: Fix the placement of the match_scratch in the
895         lea64 peephole2.
896
897 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
898
899         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
900         Fix comment typos.
901
902 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
903
904         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
905         (strip_offset): Handle addresses.
906         (add_address_candidates): Use strip_offset.
907         (difference_cost): Reflect strip_offset change.
908         (force_var_cost, difference_cost): Strip nops.
909
910 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
911
912         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
913
914         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
915         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
916         config/cris/cris-protos.h, config/cris/cris.c: Update
917         copyright.
918
919 2005-02-10  Jeff Law  <law@redhat.com>
920
921         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
922         (lookup_avail_expr): Similarly.
923
924 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
925
926         * builtins.c (fold_builtin_powi): New function.
927         (fold_builtin_1): Call it.
928
929 2005-02-10  Steven Bosscher  <stevenb@suse.de>
930
931         PR documentation/19309
932         * doc/cpp.texi: The __GNUC__ and related predefined macros
933         are also defined for the "standalone" cpp.
934         Some non-GCC compilers may also define __GNUC__.
935
936 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
937
938         PR c/19342
939         * c-typeck.c (common_type): New routine.  Old common_type renamed
940         to...
941         (c_common_type): ...this.
942         (build_conditional_expr, build_binary_op): Use c_common_type instead
943         of common_type.
944
945 2005-02-10  Steven Bosscher  <stevenb@suse.de>
946
947         * doc/md.texi: Replace @samp{length} with @code{length}.
948
949 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
950
951         PR tree-optimization/18687
952         * tree-flow.h (find_loop_niter): Declare.
953         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
954         Try using scev even for loops with more than one exit.
955         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
956         (struct ivopts_data): Added niters field.
957         (struct nfe_cache_elt): New.
958         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
959         functions.
960         (tree_ssa_iv_optimize_init): Initialize niters cache.
961         (determine_number_of_iterations): Removed.
962         (find_induction_variables): Do not call determine_number_of_iterations.
963         Access niters for single exit through niter_for_single_dom_exit.
964         (add_iv_outer_candidates): Access niters for single exit through
965         niter_for_single_dom_exit.
966         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
967         number_of_iterations_cond.
968         (iv_period): New function.
969         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
970         (may_replace_final_value): Take data argument.  Use
971         niter_for_single_dom_exit.
972         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
973         (rewrite_use_compare): Pass data to may_eliminate_iv.
974         (rewrite_use_outer): Pass data to may_replace_final_value.
975         (free_loop_data): Clean up the niters cache.
976         (tree_ssa_iv_optimize_finalize): Free the niters cache.
977         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
978         * tree-ssa-loop-niter.c (find_loop_niter): New function.
979         (find_loop_niter_by_eval): Use tree_int_cst_lt.
980         (num_ending_zeros): Moved to tree.c.
981         * tree.h (num_ending_zeros): Declare.
982         * tree.c (num_ending_zeros): Moved from tree.c.
983
984 2005-02-09  Richard Henderson  <rth@redhat.com>
985
986         * builtins.c (DEF_BUILTIN): Add COND argument.
987         * tree.h (DEF_BUILTIN): Likewise.
988         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
989         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
990         match.
991         (DEF_BUILTIN_STUB): New.
992         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
993         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
994         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
995         * c-common.c (DEF_BUILTIN): Add COND argument.
996         * tree.c (local_define_builtin): New.
997         (build_common_builtin_nodes): New.
998
999 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1000
1001         * fold-const.c (fold_strip_sign_ops): New function to simplify a
1002         floating point expression ignoring the sign of the result.
1003         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
1004         (fold) <MULT_EXPR>: Use it to simplify x*x.
1005         * tree.h (fold_strip_sign_ops): Prototype here.
1006         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
1007         argument.  Use fold_strip_sign_ops to simplify the first argument.
1008         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
1009         first argument when the second argument is an even integer
1010         constant, but only with -funsafe_math_optimizations.
1011         (fold_builtin_1): Update call to fold_builtin_copysign.
1012
1013 2005-02-09  Ian Lance Taylor  <ian@airs.com>
1014
1015         PR middle-end/19583
1016         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
1017         just check whether EH_FILTER_FAILURE falls through.
1018
1019 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
1020
1021         * gcc/haifa-sched.c (schedule_block): Make queued sched group
1022         insns return to ready list in the next turn.
1023
1024 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1025
1026         PR middle-end/19402
1027         * builtins.def: New __builtin_powi[lf].
1028         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
1029         (expand_builtin_powi): New function.
1030         (expand_builtin): Dispatch to expand_builtin_powi.
1031         * libgcc2.h: Add prototypes for __builtin_powi[lf].
1032         * libgcc2.c: Add __builtin_powi[lf] implementation.
1033         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
1034         * optabs.h: Add powi_optab.
1035         * optabs.c (init_optabs): Initialize powi_optab.
1036         * doc/extend.texi: Document __builtin_powi[lf].
1037
1038 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
1039
1040         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
1041         exists.
1042
1043 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
1044
1045         PR middle-end/19854
1046         * fold-const.c (try_move_mult_to_index): Remove redundant
1047         type argument.  Create ADDR_EXPR with correct type.
1048         (fold): Update callers of try_move_mult_to_index.  Convert
1049         result to the appropriate type.
1050
1051 2005-02-09  Roger Sayle  <roger@eyesopen.com>
1052
1053         PR target/19597
1054         * config/avr/avr.c (default_rtx_costs): Delete.
1055         (avr_operand_rtx_cost): New function.
1056         (avr_rtx_costs): Completely rewrite.
1057
1058 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
1059
1060         PR target/19806
1061         * config/cris/cris.c (in_code): New variable.
1062         (cris_output_addr_const): Now a static function, a wrapper for
1063         output_addr_const.
1064         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
1065         case from old cris_output_addr_const.
1066         (cris_asm_output_label_ref): Similar for LABEL_REF.
1067         (cris_output_addr_const_extra): Similar for UNSPEC.
1068         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
1069         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
1070         * config/cris/cris-protos.h (cris_output_addr_const): Remove
1071         declaration.
1072         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
1073         (cris_asm_output_label_ref): Declare.
1074
1075 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
1076
1077         PR preprocessor/19801
1078         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
1079         filenames that changed when libcpp was moved to the toplevel.
1080
1081 2005-02-07  Roger Sayle  <roger@eyesopen.com>
1082
1083         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1084         zero extensions of BImode operands.  Call lowpart_subreg instead
1085         of gen_lowpart_common and gen_lowpart_SUBREG.
1086
1087 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
1088
1089         PR ada/19489
1090         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
1091         * configure.ac: Set cc_for_cross_gnattools.
1092         * configure: Regenerate.
1093
1094 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
1095
1096         PR target/19803
1097         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
1098
1099 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
1100
1101         PR debug/19327
1102         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
1103         of nested functions.
1104
1105 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
1106
1107         * doc/extend.texi: Document deprecated extensions allowing
1108         static floating-point members to have initializers and allowing
1109         floating-point literals in integral constant expressions.
1110
1111 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
1112
1113         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
1114         config/darwin7.h, config/mips/mips.c,
1115         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
1116         Update copyright.
1117
1118         * cse.c: Update comments.
1119
1120 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
1121
1122         PR middle-end/19775
1123         * builtins.c (fold_builtin_sqrt): Transform
1124         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
1125         pow(x,y*0.5).
1126
1127 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
1128             Dorit Naishlos  <dorit@il.ibm.com>
1129
1130         * doc/invoke.texi (ftree-vectorizer-verbose): New.
1131         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
1132         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
1133         was added.
1134         * tree.h (vect_set_verbosity_level): New extern function declaration
1135         added.
1136         * tree-vectorizer.h (verbosity_levels): New enum type.
1137         * tree-vectorizer.c (vect_debug_stats): Function removed.
1138         (vect_debug_details): Likewise.
1139         (vect_verbosity_level): Global variable was defined and initialized.
1140         (vect_dump): Global variable definition.
1141         (vect_print_dump_info): New function.
1142         (vect_set_dump_settings): New function.
1143         (vect_set_verbosity_level): New function.
1144         (vectorize_loops): Add call to vect_set_dump_settings.
1145
1146         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
1147         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1148         (slpeel_tree_peel_loop_to_edge): Likewise.
1149
1150         (vect_analyze_offset_expr): Call to vect_print_dump_info with
1151         appropriate verbosity level instead of call to vect_debug_details
1152         or vect_debug_stats.
1153         (vect_get_base_and_offset):
1154         (vect_create_addr_base_for_vector_ref):
1155         (get_vectype_for_scalar_type):
1156         (vect_create_data_ref_ptr):
1157         (vect_init_vector):
1158         (vect_get_vec_def_for_operand):
1159         (vect_finish_stmt_generation):
1160         (vectorizable_assignment):
1161         (vectorizable_operation):
1162         (vectorizable_store):
1163         (vectorizable_load):
1164         (vect_transform_stmt):
1165         (vect_update_ivs_after_vectorizer):
1166         (vect_do_peeling_for_loop_bound):
1167         (vect_update_inits_of_drs):
1168         (vect_do_peeling_for_alignment):
1169         (vect_transform_loop):
1170         (vect_is_simple_use):
1171         (vect_analyze_operations):
1172         (vect_is_simple_iv_evolution):
1173         (vect_analyze_scalar_cycles):
1174         (vect_analyze_data_ref_dependence):
1175         (vect_analyze_data_ref_dependences):
1176         (vect_compute_data_ref_alignment):
1177         (vect_enhance_data_refs_alignment):
1178         (vect_analyze_data_refs_alignment):
1179         (vect_analyze_data_ref_access):
1180         (vect_analyze_data_ref_accesses):
1181         (vect_analyze_pointer_ref_access):
1182         (vect_get_memtag_and_dr):
1183         (vect_analyze_data_refs):
1184         (vect_mark_relevant):
1185         (vect_stmt_relevant_p):
1186         (vect_mark_stmts_to_be_vectorized):
1187         (vect_can_advance_ivs_p):
1188         (vect_get_loop_niters):
1189         (vect_analyze_loop_form):
1190         (vect_analyze_loop):
1191         (vectorize_loops): Likewise.
1192
1193         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
1194         (vect_update_inits_of_drs):
1195         (vect_do_peeling_for_alignment):
1196         (vect_transform_loop):
1197         (vect_analyze_operations):
1198         (vect_analyze_scalar_cycles):
1199         (vect_analyze_data_ref_dependences):
1200         (vect_analyze_data_refs_alignment):
1201         (vect_analyze_data_ref_accesses):
1202         (vect_analyze_data_refs):
1203         (vect_mark_stmts_to_be_vectorized):
1204         (vect_get_loop_niters):
1205         (vect_analyze_loop_form):
1206         (vect_analyze_loop): Likewise.
1207         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
1208
1209 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
1210
1211         PR bootstrap/19796
1212         Revert:
1213         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
1214         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
1215         either -ffast-math or -funsafe-math-optimizations is in use.
1216
1217         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
1218         * config/mips/irix-csr.c: New file.
1219         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
1220         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
1221         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
1222         executables.
1223
1224 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
1225
1226         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
1227         redundant, incorrect definitions.
1228
1229         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
1230         expand.
1231         ("*tls_indirect_call"): New, reference hard regs directly.
1232         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
1233
1234 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1235
1236         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
1237         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
1238
1239 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1240
1241         PR rtl-optimization/19800
1242         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
1243         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
1244         gen_lowpart.
1245
1246 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
1247
1248         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
1249
1250 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
1251
1252         PR other/17135
1253         * doc/invoke.texi: Correct documentation of -freorder-functions.
1254
1255 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1256
1257         PR other/14402
1258         * doc/invoke.texi: Don't mention gccbug.
1259
1260 2005-02-06  Roger Sayle  <roger@eyesopen.com>
1261             Andrew Pinski  <pinskia@physics.uc.edu>
1262             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
1263
1264         * simplify-rtx.c (simplify_relational_operation_1): Simplify
1265         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
1266         into just (zero_extract:SI FOO (const_int 1) BAR).
1267
1268 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1269
1270         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
1271         macro locally.  Don't give last revision date.  Use GCC version
1272         number from gcc-common.texi.
1273         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
1274         revision date.  Use GCC version number from gcc-common.texi.
1275         Describe being a library as current state rather than as 3.x
1276         history.
1277         * doc/gcc.texi: Remove last update date.
1278         * doc/gccint.texi: Likewise.  Update copyright dates.
1279         * doc/install.texi: Update copyright dates.
1280
1281 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
1282
1283         PR other/7549
1284         * doc/invoke.texi: Mention for each option included in -Wall that
1285         it is included in -Wall.
1286         * doc/gcc.texi: Update copyright and last modification date.
1287
1288 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1289
1290         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
1291         unnecessary cast to original induction variable increments.
1292
1293 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
1294
1295         PR tree-optimization/18219
1296         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
1297         in distributed form.
1298
1299 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
1300
1301         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
1302         Set bitpos and offset later in the function.  Do nothing if the
1303         target is a register and if the bitfield lies completely outside
1304         that register.
1305         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
1306         here.  Return an uninitialised register if the source value is stored
1307         in a register and the bitfield lies completely outside that register.
1308
1309 2005-02-06  Steven Bosscher  <stevenb@suse.de>
1310
1311         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
1312         not SET_DEST.
1313
1314 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
1315
1316         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
1317
1318 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
1319
1320         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
1321         * config/darwin8.h: New.
1322         * config/darwin7.h: Update comment.
1323
1324 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1325             Dorit Naishlos  <dorit@il.ibm.com>
1326
1327         * tree-vectorizer.h (LOC): New type.
1328         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
1329         (loop_line_number): New field in struct _loop_vec_info.
1330         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
1331
1332         * tree-vectorizer.c (input.h): Included.
1333         (find_loop_location): New function.
1334         (vect_debug_stats): Argument changed from loop to LOC. Computation of
1335         loop line number removed.
1336         (vect_debug_details): Likewise.
1337         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
1338
1339         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
1340         call to vect_debug_details/stats changed from loop to loop_loc.
1341         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
1342         (slpeel_tree_peel_loop_to_edge): Likewise.
1343
1344         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
1345         changed from NULL to UNKNOWN_LOC.
1346         (vect_get_base_and_offset):
1347         (vect_create_addr_base_for_vector_ref):
1348         (get_vectype_for_scalar_type):
1349         (vect_create_data_ref_ptr):
1350         (vect_init_vector):
1351         (vect_get_vec_def_for_operand):
1352         (vect_finish_stmt_generation):
1353         (vectorizable_assignment):
1354         (vectorizable_operation):
1355         (vectorizable_store):
1356         (vectorizable_load):
1357         (vect_transform_stmt):
1358         (vect_update_ivs_after_vectorizer):
1359         (vect_do_peeling_for_loop_bound):
1360         (vect_do_peeling_for_alignment):
1361         (vect_transform_loop):
1362         (vect_is_simple_use):
1363         (vect_analyze_operations):
1364         (vect_is_simple_iv_evolution):
1365         (vect_analyze_scalar_cycles):
1366         (vect_analyze_data_ref_dependences):
1367         (vect_compute_data_ref_alignment):
1368         (vect_enhance_data_refs_alignment):
1369         (vect_analyze_data_ref_access):
1370         (vect_analyze_data_ref_accesses):
1371         (vect_analyze_pointer_ref_access):
1372         (vect_get_memtag_and_dr):
1373         (vect_analyze_data_refs):
1374         (vect_mark_relevant):
1375         (vect_stmt_relevant_p):
1376         (vect_mark_stmts_to_be_vectorized):
1377         (vect_can_advance_ivs_p):
1378         (vect_get_loop_niters):
1379         (vect_analyze_loop):
1380         (vectorize_loops): Likewise.
1381
1382         (vectorizable_load): Argument in call to vect_debug_details/stats
1383         changed from loop to LOOP_LOC (loop_vinfo).
1384         (vect_transform_loop):
1385         (vect_analyze_operations):
1386         (vect_analyze_scalar_cycles):
1387         (vect_analyze_data_ref_dependence):
1388         (vect_enhance_data_refs_alignment):
1389         (vect_analyze_data_ref_accesses):
1390         (vect_analyze_pointer_ref_access):
1391         (vect_analyze_data_refs):
1392         (vect_analyze_loop): Likewise.
1393
1394         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
1395         changed from loop to loop_loc.
1396
1397         (vect_enhance_data_refs_alignment): Removed unused variable loop.
1398
1399 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
1400             Dorit Naishlos  <dorit@il.ibm.com>
1401
1402         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
1403         declaration added.
1404         (vect_analyze_data_ref_dependences): Likewise.
1405
1406         (vect_is_simple_use): Argument changed from loop structure to
1407         loop_vect_info structure.
1408         (vect_can_advance_ivs_p): Likewise.
1409         (vect_create_index_for_vector_ref): Likewise.
1410         (vect_update_ivs_after_vectorizer): Likewise.
1411         (new_stmt_vec_info): Likewise.
1412
1413         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
1414         changed from loop to loop_vinfo.
1415         (vect_create_data_ref_ptr): First argument in call to
1416         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
1417         (vectorizable_assignment): Second argument in call to vect_is_simple_use
1418         was changed from loop to loop_vinfo.
1419         (vectorizable_operation): Likewise.
1420         (vectorizable_store): Likewise.
1421         (vect_mark_stmts_to_be_vectorized): Likewise.
1422         (vect_do_peeling_for_loop_bound): First argument in call to
1423         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
1424         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
1425         was changed from loop to loop_vinfo.
1426         (vect_analyze_data_ref_dependences): Third argument in call to
1427         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
1428
1429         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
1430         (vect_create_data_ref_ptr): Likewise.
1431         (vect_init_vector): Likewise.
1432         (vect_get_vec_def_for_operand): Likewise.
1433         (vectorizable_assignment): Likewise.
1434         (vectorizable_operation): Likewise.
1435         (vectorizable_store): Likewise.
1436         (vectorizable_load): Likewise.
1437         (vect_update_ivs_after_vectorizer): Likewise.
1438         (vect_is_simple_use): Likewise.
1439         (vect_analyze_data_ref_dependence): Likewise.
1440         (vect_analyze_pointer_ref_access): Likewise.
1441         (vect_can_advance_ivs_p): Likewise.
1442
1443         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
1444         before _stmt_vec_info.
1445         (_stmt_vec_info): Loop field replaced by loop_vec_info.
1446         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
1447         (new_stmt_vec_info): Argument changed from loop structure to
1448         loop_vect_info structure
1449
1450         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
1451         (vect_analyze_offset_expr): Avoid 80 columns overflow.
1452         (vect_create_addr_base_for_vector_ref): Likewise.
1453         (vect_analyze_pointer_ref_access): Likewise.
1454
1455 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1456
1457         PR tree-opt/19768
1458         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
1459         phi flag if the phi is abnormal.
1460
1461 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
1462
1463         PR tree-opt/19736
1464         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
1465         information for the new statement.
1466
1467 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1468
1469         PR driver/19117
1470         * gcc.c (main): Include the target in -v output.
1471
1472 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
1473
1474         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
1475         Do not drop the extend if we'd have to add a paradoxical subreg
1476         later.  Include optabs.h and insn-codes.h.
1477         * Makefile.in (combine.o): Depend on $(OPTABS_H).
1478
1479 2005-02-02  Roger Sayle  <roger@eyesopen.com>
1480
1481         PR middle-end/19405
1482         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
1483         * fold-const.c (const_binop): Avoid constant folding floating
1484         point operations in modes that use composite representations.
1485         * simplify-rtx.c (simplify_binary_operation): Likewise.
1486
1487 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
1488
1489         * config/rs6000/altivec.md (altivec_dst): Make the first operand
1490         a REG, not a MEM.
1491         (altivec_dstt): Likewise.
1492         (altivec_dstst): Likewise.
1493         (altivec_dststt): Likewise.
1494         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
1495         of first operand.
1496
1497 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1498
1499         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
1500         EXPR_LOCUS from orig_cond to the new cond_stmt.
1501         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
1502         the new vec_stmt.
1503
1504 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1505
1506         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
1507         standard_iv_increment_position. Remove call to bsi_next
1508         (no need to bump the iterator anymore).
1509         (vect_create_index_for_vector_ref): Call
1510         standard_iv_increment_position. Remove second function argument.
1511         (vect_finish_stmt_generation): Remove call to bsi_next
1512         (no need to bump the iterator anymore).
1513         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
1514         to vect_create_index_for_vector_ref.
1515
1516 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
1517
1518         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
1519         phis are used out of the loop.
1520
1521 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
1522
1523         PR c/17807
1524         * c-decl.c (undef_nested_function): New variable.
1525         (pop_scope): Diagnose undefined nested functions.
1526         (finish_function): Don't attempt cgraph processing or genericizing
1527         if current top-level function contained an undefined nested
1528         function.  Reset undef_nested_function at the end of a top-level
1529         function.
1530
1531 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
1532
1533         * tree.c (build_int_cst_type): Take sign of the value into account
1534         when deciding whether sign extend the value.
1535
1536 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1537
1538         PR c/18502
1539         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
1540         (cpp_options, cc1_options): Change %{std*&ansi} to
1541         %{std*&ansi&trigraphs}.
1542
1543 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1544
1545         * cse.c: Update comments.
1546
1547 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
1548
1549         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
1550         arguments go on the stack.  Do not put complex doubles in odd/even
1551         pairs.
1552
1553 2005-02-02  Steven Bosscher  <stevenb@suse.de>
1554
1555         * doc/invoke.texi: Update the options enabled at -O1, -O2,
1556         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
1557         -ftree-pre, and -fthread-jumps.
1558
1559 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
1560
1561         PR tree-optimization/19578
1562         * tree-flow.h (modified_noreturn_calls): Declare.
1563         (noreturn_call_p): Declare.
1564         * tree-flow-inline.h (noreturn_call_p): New function.
1565         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
1566         * tree-cfg.c (modified_noreturn_calls): New variable.
1567         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
1568         that contain a mid-block noreturn call.
1569         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
1570
1571 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
1572
1573         * df.c (df_def_record_1, df_uses_record): Don't use
1574         DF_FOR_REGALLOC.
1575         * df.h (DF_FOR_REGALLOC): Remove.
1576
1577 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1578
1579         PR c/19435
1580         * c-typeck.c (really_start_incremental_init): Reset
1581         constructor_max_index for arrays of incomplete type.
1582
1583 2005-02-02  Jeff Law  <law@redhat.com>
1584
1585         * gcse.c (struct reg_set): Store the block index where the register
1586         was set rather than the setting insn.
1587         (record_one_set, compute_transp): Corresponding changes.
1588         (pre_insert_copy_insn): Do not call replace_one_set.
1589         (replace_one_set): Remove.
1590
1591 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
1592
1593         PR other/15514
1594         * doc/gcov.texi: Fix typo.
1595
1596 2005-02-01  Richard Henderson  <rth@redhat.com
1597
1598         PR target/19680
1599         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
1600         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
1601         type to bool.
1602         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
1603         * config/i386/i386-protos.h: Update.
1604
1605 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1606
1607         PR tree-optimization/19217
1608         * tree-cfg.c (verify_expr): Use the data field to see if TP was
1609         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
1610         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
1611         that it is walking a PHI node.
1612
1613 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
1614
1615         * doc/extend.texi (Nested Functions): Update.
1616
1617 2005-02-01  Richard Henderson  <rth@redhat.com>
1618
1619         PR 19696
1620         * optabs.c (expand_copysign_absneg): Export.
1621         * optabs.h (expand_copysign_absneg): Declare.
1622         * config/rs6000/rs6000.md (copysigntf3): New.
1623
1624 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1625
1626         PR tree-optimization/19633
1627         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
1628         * tree-ssa-alias.c (init_alias_info): Initialize.
1629         (merge_pointed_to_info): Set.
1630         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
1631         (dump_points_to_info_for): Show value of pt_null.
1632         (struct count_ptr_d): Declare.
1633         (find_ptr_dereference): Remove.
1634         (ptr_is_dereferenced_by): Remove.
1635         (count_ptr_derefs): New local function.
1636         (count_uses_and_derefs): New local function.
1637         (compute_points_to_and_addr_escape): Call it.  If the number
1638         of dereferences is greater than zero, mark the pointer as
1639         dereferenced.  If there are fewer dereferences than uses of
1640         the pointer, the pointer's value escapes.
1641
1642 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
1643
1644         PR tree-optimization/19670
1645         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
1646         here...
1647         (verify_use): ... set it here, instead.
1648
1649 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
1650
1651         * doc/sourcebuild.texi (Test directives): Fix formatting.
1652
1653         * doc/sourcebuild.texi (Test directives): Describe selector
1654         expressions.
1655
1656 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
1657
1658         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
1659         specific 64-bit CPUs.
1660
1661 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
1662
1663         PR target/16201
1664         * arm.c (arm_eliminable_register): New function.
1665         (adjacent_mem_locations): Don't allow eliminable registers.  Use
1666         HOST_WIDE_INT for address offsets.
1667         * arm-protos.h (arm_eliminable_register): Add prototype.
1668
1669 2005-02-01  Steven Bosscher  <stevenb@suse.de>
1670
1671         PR optimization/15242
1672         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
1673         * basic-block.h (duplicate_computed_gotos): Add prototype.
1674         * bb-reorder.c (duplicate_computed_gotos): New function to
1675         duplicate sufficiently small blocks ending in a computed jump.
1676         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
1677         if not optimizing for size.
1678         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
1679         never do tail merging for blocks ending in a computed jump.
1680         * doc/invoke.texi: Document the max-goto-duplication-insns param.
1681
1682 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
1683
1684         Patch from Richard Sandiford <rsandifo@redhat.com>
1685         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
1686         from inheriting a subreg equivalence with a non-spill register.
1687
1688         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
1689
1690 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
1691
1692         * config/frv/frv.c (movcc_fp_destination_operand): New.
1693         (gpr_or_memory_operand): Fix typo in comment.
1694         (gpr_or_memory_operand_with_scratch): New.
1695         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
1696         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
1697         movcc_fp_destination_operand.
1698         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
1699         Legitimize memory addresses using a scratch register.
1700
1701 2005-01-31  Jeff Law  <law@redhat.com>
1702
1703         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
1704         bitmap a sparse bitmap instead of a simple bitmap.
1705         (mark_def_sites_initialize_block):  Corresponding changes.
1706         (ssa_mark_def_sites_initialize_block): Likewise.
1707         (ssa_mark_phi_uses): Likewise.
1708         (mark_def_site, ssa_mark_def_sites): Likewise.
1709         (mark_def_site_blocks): Likewise.
1710         (rewrite_ssa_into_ssa): Likewise.
1711
1712         * tree-ssa-dom.c (record_cond): Pass correct variable type
1713         for last argument to htab_find_slot_with_hash.
1714
1715         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
1716         effects when optimizing 0 % X.  Do not try to optimize X % 0.
1717
1718 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
1719
1720         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
1721         1_mmalua.
1722
1723 2005-02-01  Eric Christopher  <echristo@redhat.com>
1724
1725         * config/mips/mips.c (override_options): Warn if -mint64
1726         is used.
1727         * doc/invoke.texi (MIPS Options): Document that -mint64 is
1728         deprecated.
1729
1730 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
1731
1732         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
1733         timestamp.
1734         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
1735         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
1736         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
1737         (cached_regno): Initialize to INVALID_REGNUM.
1738         (cse_reg_info_table_size,
1739         cse_reg_info_table_first_uninitialized,
1740         cse_reg_info_timestamp): New.
1741         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
1742         get_cse_reg_info.
1743         (init_cse_reg_info, get_cse_reg_info_1): New.
1744         (get_cse_reg_info): Cache the last look-up.
1745         (new_basic_block): Update the code to clear mappings from
1746         registers to cse_reg_info entries.
1747         (cse_main): Call init_cse_reg_info.
1748
1749         * cse.c (get_cse_reg_info): Update a comment.
1750
1751 2005-01-31  Steven Bosscher  <stevenb@suse.de>
1752
1753         PR c/19333
1754         * c-decl.c (start_decl): Do not warn about arrays of elements with
1755         an incomplete type here.
1756         (grokdeclarator): Do it here by making a pedwarn an error.
1757         * c-typeck.c (push_init_level): If there were previous errors with
1758         the constructor type, do not warn about braces for initializers.
1759         (process_init_element): Likewise for excess initializer elements.
1760
1761 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
1762
1763         * cse.c (delete_trivially_dead_insn): Don't iterate.
1764
1765 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
1766
1767         * config/rs6000/rs6000.md (copysignsf3): New expand.
1768         (copysigndf3): Likewise.
1769
1770 2005-01-31  Steven Bosscher  <stevenb@suse.de>
1771
1772         * recog.c (constrain_operands): Only look for earlyclobber operand
1773         conflicts if an '&' constraint was seen.
1774
1775 2005-01-31  Marc Espie <espie@openbsd.org>
1776
1777         * config.gcc: Don't include embedded systems fragment, switches default
1778         debugging format to ELF.
1779         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
1780         longer pick it up there.
1781
1782 2005-01-31  Dale Johannesen  <dalej@apple.com>
1783
1784         * doc/extend.texi (nested functions): Fix linkage description.
1785         Clarify that static is not allowed.
1786
1787 2005-01-31  Dale Johannesen  <dalej@apple.com>
1788
1789         * config/rs6000/darwin.md (movsf_low_di):  Make work.
1790         (movdf_low_di):  Make work.
1791
1792 2005-01-31  Dale Johannesen  <dalej@apple.com>
1793
1794         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
1795         Make work for 64 bit.
1796
1797 2005-01-31  Roger Sayle  <roger@eyesopen.com>
1798             Dale Johannesen  <dalej@apple.com>
1799
1800         PR middle-end/19650
1801         * fold-const.c (fold_binary_op_with_conditional_arg):
1802         Make types match original operands, before STRIP_NOPS.
1803
1804 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
1805
1806         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
1807         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
1808         (struct gcc_sigcontext): Delete.  Merge contents to..
1809         (struct gcc_ucontext): ..here.
1810         (get_sigcontext): Delete.
1811         (get_regs): New function, like get_sigcontext but return regs ptr.
1812         64-bit version finds regs from r1 to support vdso.
1813         (ppc_linux_aux_vector): New function.
1814         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
1815         and vector regs.
1816
1817 2005-01-31  Ira Rosen  <irar@il.ibm.com>
1818
1819         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
1820         sizetype.
1821         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
1822         redundant fold. Fix misalignment for MINUS_EXPR.
1823         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
1824         (vect_analyze_pointer_ref_access): Likewise.
1825         (vect_get_memtag_and_dr): Likewise.
1826
1827 2005-01-31  Richard Henderson  <rth@redhat.com>
1828
1829         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
1830         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
1831         absnegdf2_i387, absnegxf2_i387): Likewise.
1832
1833 2005-01-31  Richard Henderson  <rth@redhat.com>
1834
1835         PR 19696
1836         * optabs.c (expand_copysign_absneg): New.
1837         (expand_copysign_bit): Split out from ...
1838         (expand_copysign): ... here.  Use expand_copysign_absneg.
1839
1840 2005-01-30  Roger Sayle  <roger@eyesopen.com>
1841
1842         PR middle-end/19697
1843         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
1844         constant as the second operand and a register as the third.
1845
1846 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
1847
1848         PR target/19704
1849         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
1850         that dllimport'd functions do not use all call-clobbered registers
1851         to pass parameters.
1852
1853 2005-01-30  Richard Henderson  <rth@redhat.com>
1854
1855         PR 19696
1856         * optabs.c (expand_absneg_bit): Split out from expand_unop and
1857         expand_abs_nojump and generalize.  Use operand_subword and
1858         emit_no_conflict_block.  Support large modes.
1859         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
1860         back to maximum.
1861         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
1862         negation to subtraction.
1863         (expand_copysign): Check that the format has signed zeros.
1864         Use operand_subword and emit_no_conflict_block.  Support large modes.
1865
1866 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
1867
1868         Fix PR tree-optimization/19624
1869
1870         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
1871         * tree-ssa-pre.c: Add cfgloop.h.
1872         Update comment.
1873         (pre_stats): New member, constified.
1874         (inserted_exprs): New static variable.
1875         (NECESSARY): New macro.
1876         (create_expression_by_pieces): Fold the expression, and
1877         mark it as defaulting to not necessary. Also put in
1878         inserted_exprs.
1879         (fully_constant_expression): New function.
1880         (insert_into_preds_of_block): Modify to not insert phis when we
1881         are playing with induction variables.
1882         Push phis onto the inserted_exprs vector, and mark them as not
1883         necessary by default.
1884         (insert_aux): Call fully_constant_expression on eprime.
1885         If all edges produce the same value, mark it constant.
1886         (mark_operand_necessary): New function.
1887         (remove_dead_inserted_code): New function.
1888         (init_pre): Init loop optimizer to get loop info.
1889         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
1890         (execute_pre): Commit edge inserts, then remove dead code.
1891
1892 2005-01-30  Richard Henderson  <rth@redhat.com>
1893
1894         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
1895         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
1896
1897 2005-01-30  Richard Henderson  <rth@redhat.com>
1898
1899         PR target/19700
1900         * config/i386/i386.c (ix86_expand_copysign): New.
1901         (ix86_split_copysign_const): New.
1902         (ix86_split_copysign_var): Rename from ix86_split_copysign,
1903         rearrange op1/nmask operands.
1904         * config/i386/i386-protos.h: Update.
1905         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
1906         (copysigndf3): Likewise.
1907         (copysignsf3_const, copysigndf3_const): New.
1908         (copysignsf3_var): Rename from copysignsf3, split out splitter
1909         and fix split predicate for X constraint.
1910         (copysigndf3_var): Similarly.
1911
1912 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
1913
1914         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
1915         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
1916         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
1917
1918 2005-01-29  Richard Henderson  <rth@redhat.com>
1919
1920         PR target/19690
1921         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
1922         of # and * in constraints.
1923
1924 2005-01-29  Richard Henderson  <rth@redhat.com>
1925
1926         PR middle-end/19689
1927         * expr.c (store_field): Don't strip sub-mode cast when the input
1928         data is even smaller.
1929
1930 2005-01-29  Richard Henderson  <rth@redhat.com>
1931
1932         PR middle-end/19687
1933         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
1934         union being empty.
1935
1936 2005-01-29  Richard Henderson  <rth@redhat.com>
1937
1938         * combine.c (make_field_assignment): Fix argument order
1939         to gen_int_mode.
1940
1941 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
1942
1943         PR tree-optimization/15791
1944         * fold-const.c (extract_array_ref): New function.
1945         (fold): Fold comparisons between &a[i] and &a[j] or
1946         semantically equivalent trees.
1947
1948 2005-01-29  Jeff Law  <law@redhat.com>
1949
1950         * gcse.c (insert_expr_in_table): Revamp handling of available
1951         and anticipatable occurrence lists to avoid unnecessary list
1952         walking.
1953         (insert_set_in_table): Similarly.
1954
1955 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
1956
1957         * c-common.c (fix_string_type): Just use c_build_qualified_type to
1958         build string type.
1959         (c_build_qualified_type): Build qualified array types with
1960         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
1961         * c-decl.c (c_make_fname_decl): Build unqualified array type
1962         before qualified type.
1963         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
1964         type is qualified, not just if type itself is.  Don't apply
1965         qualifiers to array type when declarator is processed.  Apply
1966         qualifiers to field type whether or not it is an array type.
1967         Don't handle array types specially for applying qualifiers to
1968         variables.
1969         * c-typeck.c (composite_type): Build unqualified element type and
1970         array type when forming composite of array types.
1971         (common_pointer_type, comptypes, comp_target_types,
1972         type_lists_compatible_p, build_indirect_ref, build_array_ref,
1973         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
1974         types.
1975         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
1976         (args2) in variables a1 and a2.
1977
1978 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
1979
1980         * cse.c (n_elements_made, max_elements_made): Remove.
1981         (insert): Don't touch n_elements_made.
1982         (cse_main): Don't touch n_elements_made or max_elements_made.
1983
1984 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
1985
1986         PR target/15384
1987         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
1988         configuration part of dp-bit.c to be lost.
1989
1990 2005-01-28  Roger Sayle  <roger@eyesopen.com>
1991
1992         * expmed.c (expand_mult_highpart_optab): When attempting to use
1993         a non-widening multiplication in a wider mode, the operands need
1994         to be converted (zero or sign extended) to that mode.
1995
1996 2005-01-28  Ian Lance Taylor  <ian@airs.com>
1997
1998         PR middle-end/16558
1999         PR middle-end/19583
2000         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
2001         through if both operands fall through.
2002
2003 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2004
2005         * cse.c (fold_rtx) <PC>: Don't optimize.
2006
2007 2005-01-28  Jeff Law  <law@redhat.com>
2008
2009         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
2010         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
2011
2012 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
2013
2014         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
2015         cse_reg_info_used_list_end): Remove.
2016         (cse_reg_info_list, cse_reg_info_list_free): New.
2017         (get_cse_reg_info): When allocating an instance of
2018         cse_reg_info, add it to the beginning of the cse_reg_info_list
2019         list.  Remove code to maintain cse_reg_info_used_list.
2020         (new_basic_block): Reset the free list to the beginning of
2021         cse_reg_info_list.
2022
2023 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
2024
2025         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
2026         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
2027         (frv_expand_mdpackh_builtin): New function.
2028         (frv_expand_builtin): Use it to expand __MDPACKH.
2029         * doc/extend.texi (__MDPACKH): Update documentation.
2030
2031 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
2032
2033         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
2034         SSE_FLOAT_MODE_P for use_sse computation.
2035
2036 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
2037
2038         PR target/19663
2039         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
2040
2041 2005-01-27  Richard Henderson  <rth@redhat.com>
2042
2043         * builtins.c (expand_builtin_copysign): New.
2044         (expand_builtin): Call it.
2045         * genopinit.c (optabs): Add copysign_optab.
2046         * optabs.c (init_optabs): Initialize it.
2047         (expand_copysign): New.
2048         * optabs.h (OTI_copysign, copysign_optab): New.
2049         (expand_copysign): Declare.
2050
2051         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
2052         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
2053
2054         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
2055         (ix86_expand_fp_absneg_operator): ... here.
2056         (ix86_split_copysign): New.
2057         * config/i386/i386-protos.h: Update.
2058         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
2059         (copysignsf3, copysigndf3): New.
2060
2061         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
2062         (copysignsf3, ncopysignsf3): New.
2063         (copysigndf3, ncopysigndf3): New.
2064         (copysignxf3, ncopysignxf3): New.
2065         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
2066
2067 2005-01-27  Arend Bayer  <arend.bayer@web.de>
2068             Kazu Hirata  <kazu@cs.umass.edu>
2069
2070         * cse.c: (find_best_addr): Don't call copy_rtx before calling
2071         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
2072         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
2073         NULL_RTX.
2074
2075 2005-01-27  Jeff Law  <law@redhat.com>
2076
2077         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
2078         definitions of SSA_NAMEs which are not being rewritten.
2079         (rewrite_ssa_into_ssa): Only initialize the current definition
2080         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
2081         If checking is enabled, assert that SSA_NAME_AUX is clear for all
2082         SSA_NAMEs before returning.
2083
2084 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
2085
2086         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
2087         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
2088         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
2089         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
2090         config/mips/iris6.h, config/sh/sh.c: Update copyright.
2091
2092 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2093
2094         PR middle-end/17278
2095         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
2096         higher to -O2 and higher.  Likewise for tree PRE.
2097         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
2098         and better.
2099
2100 2005-01-27  Ian Lance Taylor  <ian@airs.com>
2101
2102         PR middle-end/19583
2103         * gimple-low.c (try_catch_may_fallthru): New static function.
2104         (block_may_fallthru): Handle TRY_CATCH_EXPR.
2105         * tree-inline.c (expand_call_inline): Don't warn about reaching
2106         the end of a non-void function being inlined if the function uses
2107         a return slot.
2108
2109 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
2110
2111         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
2112
2113         PR c/18946
2114         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
2115         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
2116         (implicitly_declare): Handle error_mark_node.
2117
2118 2005-01-27  Richard Henderson  <rth@redhat.com>
2119
2120         PR tree-opt/14329
2121         * tree.h (struct tree_decl): Add debug_expr_is_from.
2122         (DECL_DEBUG_EXPR_IS_FROM): New.
2123         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
2124         * dwarf2out.c (dwarf2out_var_location): Update to match.
2125         * tree-outof-ssa.c (create_temp): Likewise.
2126         * var-tracking.c (track_expr_p): Likewise.
2127         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
2128         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
2129         * toplev.c (default_tree_printer): Likewise.
2130
2131 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
2132
2133         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
2134         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
2135
2136 2005-01-27  Steven Bosscher  <stevenb@suse.de>
2137
2138         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
2139         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
2140         ASM_CLOBBERS): Add tree checks.
2141
2142         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
2143         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
2144         * c-common.def (SWITCH_STMT): Update to match.
2145         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
2146         macros instead of SWITCH_EXPR ones.
2147         * c-dump.c (c_dump_tree): Likewise.
2148         * c-gimplify.c (gimplify_switch_stmt): Likewise.
2149         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
2150
2151         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
2152
2153 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
2154
2155         * unwind-dw2.c (execute_stack_op): Add missing cases for
2156         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
2157
2158 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
2159
2160         * config.gcc (Obsolete configurations): Remove 'dummy', add
2161         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
2162         sparc-*-openbsd*.
2163
2164 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
2165
2166         PR tree-optimization/19633
2167         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
2168         CALL_EXPRs.
2169         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
2170         are no call-clobbered variables.
2171         * tree-outof-ssa.c (check_replaceable): Return false for calls
2172         with side-effects.
2173
2174 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
2175
2176         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
2177         even for variables with NULL DECL_INITIAL.
2178
2179 2005-01-26  Stuart Hastings  <stuart@apple.com>
2180
2181         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
2182
2183 2005-01-26  Richard Henderson  <rth@redhat.com>
2184
2185         PR middle-end/18008
2186         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2187         field's type.
2188         * expr.c (store_field): Strip conversions to odd-bit-sized types
2189         if the destination field width matches.
2190
2191 2005-01-26  Richard Henderson  <rth@redhat.com>
2192
2193         * c-decl.c, expmed.c, expr.c: Revert last change.
2194
2195 2005-01-26  Richard Henderson  <rth@redhat.com>
2196
2197         PR middle-end/18008
2198         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
2199         field's type.
2200         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
2201         if we don't need the bits above those present in the current mode.
2202         * expr.c (store_field): Strip conversions to odd-bit-sized types
2203         if the destination field width matches.
2204
2205 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2206
2207         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2208         either -ffast-math or -funsafe-math-optimizations is in use.
2209
2210 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
2211
2212         PR target/19293
2213         PR target/19329
2214         * config/avr/avr.c (notice_update_cc): Only set condition code for
2215         ashrqi3 if shift count > 0.
2216         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
2217         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
2218         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
2219         count <= 0 as a no-op, and shift count >= width by copying zero
2220         or sign bit to all bits of the result.
2221         * config/avr/avr.md (all shifts): Add alternatives for zero shift
2222         count, with attribute "length" set to 0 and "cc" set to "none".
2223
2224 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2225
2226         * doc/invoke.texi: Document -mTLS.
2227
2228         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
2229         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
2230         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
2231         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
2232         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
2233         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
2234         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
2235         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
2236
2237         * configure.ac: Check for a TLS capable gas.
2238
2239         * configure: Regenerate.
2240
2241 2005-01-26  Richard Henderson  <rth@redhat.com>
2242
2243         PR middle-end/18008
2244         * combine.c (make_field_assignment): Simplify store to zero_extract
2245         from a source with an overlapping mask.
2246
2247 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
2248
2249         2004-11-11  Eric Christopher  <echristo@redhat.com>
2250
2251         * config/frv/frv.md: Add fr400_integer automaton. Don't
2252         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
2253         to TYPE_MACC.
2254
2255 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2256
2257         PR middle-end/16585
2258         * cfgbuild.c (make_edges): Do not clear or set
2259         current_function_has_computed_jump.
2260         * function.h (struct function): Remove the has_computed_jump field.
2261         (current_function_has_computed_jump): Do not define.
2262         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
2263         in a computed jump.  Ignore current_function_has_computed_jump.
2264
2265 2005-01-26  Richard Henderson  <rth@redhat.com>
2266
2267         PR middle-end/19515
2268         * expr.c (categorize_ctor_elements): New argument p_must_clear.
2269         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
2270         fully initialized.
2271         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
2272         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
2273         objects into static storage if they have more than one non-zero value.
2274         * tree.h (categorize_ctor_elements): Update decl.
2275
2276 2005-01-26  Steven Bosscher  <stevenb@suse.de>
2277
2278         PR middle-end/19616
2279         * tree.h (CALL_EXPR_TAILCALL): Add comment.
2280         * calls.c (check_sibcall_argument_overlap_1): Revert the change
2281         to this function from 2004-07-10.
2282         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
2283         the current function for tail call optimizations if the address
2284         of one of it its arguments is taken.
2285
2286 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
2287
2288         * cse.c (fold_rtx): Call equiv_constant only when necessary.
2289
2290 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
2291
2292         * function.c (expand_function_end): If current_function_calls_alloca,
2293         emit stack restore in a place that is reached when the function falls
2294         through at the end.
2295
2296 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
2297
2298         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
2299         rule to avoid matching inappropriate suffix rule.
2300
2301 2005-01-26  Jan Hubicka  <jh@suse.cz>
2302
2303         PR tree-optimization/19241
2304         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
2305
2306 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2307
2308         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
2309         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
2310         of doubling.
2311         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
2312         <sim*>: Always use crt1.o, regardless of N in simN.
2313         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2314         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
2315         (CRT_CALL_STATIC_FUNCTION): Remove.
2316         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
2317         use crt1.o, regardless of N in simN.
2318         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
2319         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
2320         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
2321         case isystem setting.
2322         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
2323
2324 2005-01-25  Ian Lance Taylor  <ian@airs.com>
2325
2326         * gimple-low.c (block_may_fallthru): Correct handling of
2327         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
2328
2329 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
2330
2331         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
2332         handlers to match indentation; nested under the mtune=* handler.
2333         Similar for mcpu= and march=.
2334
2335 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
2336
2337         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
2338         * config/mips/linux64.h (LIB_SPEC): Likewise.
2339         * config/mn10300/linux.h (LIB_SPEC): Likewise.
2340         * config/sh/linux.h (LIB_SPEC): Likewise.
2341
2342 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
2343
2344         * config/frv/frv.c (frv_legitimize_tls_address): New.
2345         (TARGET_HAVE_TLS): Define.
2346         (FRV_SYMBOL_REF_TLS_P): Define.
2347         (frv_override_options): Handle new register classes.
2348         (frv_legitimate_address_p): Reject tls addresses.
2349         (frv_legitimize_address): Handle TLS addresses.
2350         (gen_inlined_tls_plt): New.
2351         (gen_tlsmoff): New.
2352         (frv_legitimize_tls_address): New.
2353         (unspec_got_name): Add TLS entries.
2354         (got12_operand): Add R_FRV_TLSMOFF12 case.
2355         (frv_emit_move): Fixup TLS addresses.
2356         (frv_emit_movsi): Legitimize TLS addresses.
2357
2358         * config/frv/frv.h (MASK_BIG_TLS): New.
2359         (TARGET_BIG_TLS): New.
2360         (HAVE_AS_TLS): Define.
2361         (TARGET_SWITCHES): Add -mTLS and -mtls options.
2362         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
2363         (REG_CLASS_NAMES): Same.
2364         (REG_CLASS_CONTENTS): Same.
2365         (CONSTRAINT_LEN): New.
2366         (REG_CLASS_FROM_CONSTRAINT): New.
2367         (PREDICATE_CODES): Add symbolic_operand.
2368
2369         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
2370         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
2371         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
2372         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
2373         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
2374         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
2375         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
2376         GR9_REG, GR14_REG, LRREG.
2377         (type): Add load_or_call attribute.
2378         ("load_or_call"): New reservation.
2379         ("call_gettlsoff"): New.
2380         ("tls_indirect_call"): New.
2381         ("tls_load_gottlsoff12"): New.
2382         ("tlsoff_hilo"): New.
2383         ("tls_tlsdesc_ldd"): New.
2384         ("tls_tlsoff_ld"): New.
2385         ("tls_lddi"): New.
2386
2387         * config/frv/frv-protos.h (symbolic_operand): Protoize.
2388
2389         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
2390
2391         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
2392         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
2393         * config/frv/frv.c (TLS_BIAS): Define.
2394         (frv_output_dwarf_dtprel): New.
2395
2396 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
2397
2398         PR rtl-optimization/19579
2399         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
2400         both A and B, see if they don't clobber registers the other expr uses.
2401
2402 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
2403
2404         * real.c (do_add): Initialize signalling and canonical members.
2405
2406         * real.c (real_from_integer): Zero out destination.
2407
2408 2005-01-18  Jan Hubicka  <jh@suse.cz>
2409
2410         PR tree-optimize/19337
2411         * tree-inline.c (initialize_inlined_parameters): Copy
2412         saved_static_chain_decl only.
2413
2414 2005-01-25  Richard Henderson  <rth@redhat.com>
2415
2416         PR target/19556
2417         PR target/19584
2418         * config/i386/i386.c (x86_inter_unit_moves): Zero.
2419         (ix86_preferred_reload_class): Rewrite fp-constant section, with
2420         80387 enabled, to return a proper subclass.  Return the subset that
2421         overlaps with GENERAL_REGS for PLUS.
2422         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
2423
2424 2005-01-25  Richard Henderson  <rth@redhat.com>
2425
2426         PR middle-end/19609
2427         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
2428
2429 2005-01-25  Roger Sayle  <roger@eyesopen.com>
2430
2431         * expmed.c (choose_multiplier): Change interface to return the
2432         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
2433         (expand_divmod): Update calls to choose_multiplier.
2434
2435 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2436
2437         PR middle-end/19330
2438         * expmed.c (extract_bit_field): Use adjust_address instead of
2439         gen_lowpart when op0 is a MEM.
2440
2441 2005-01-24  Steven Bosscher  <stevenb@suse.de>
2442
2443         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
2444
2445 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2446
2447         * config/mips/irix-csr.c: New file.
2448         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2449         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2450         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2451         executables.
2452
2453 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
2454
2455         PR bootstrap/19364
2456         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
2457         sparc/elf.h, add sparc/sp-elf.h.
2458         (sparc-*-rtems*): Likewise.
2459         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
2460         tm-dwarf2.h, add sparc/sp-elf.h.
2461         (sparc86x-*-elf): Likewise.
2462         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
2463         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
2464         TARGET_OS_CPP_BUILTINS.
2465         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2466         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
2467         Undefine it.
2468         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
2469         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
2470         (SWITCH_TAKES_ARG): Likewise.
2471         (LOCAL_LABEL_PREFIX): Likewise.
2472         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
2473         (TARGET_N_FORMAT_TYPES): Delete.
2474         (TARGET_FORMAT_TYPES): Likewise.
2475         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
2476         * config/sparc/elf.h: Delete.
2477         * config/sparc/sp-elf.h: New file.
2478
2479 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2480
2481         * tree-flow-inline.h (phi_arg_from_edge): Remove.
2482         * tree-flow.h: Remove the corresponding prototype.
2483         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
2484         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
2485
2486 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2487
2488         PR target/17751
2489         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
2490         for AIX ABI or ELF -fPIC.
2491         (rs6000_emit_load_toc_table): Don't create toc_section here.
2492         (rs6000_xcoff_file_start): Nor here.
2493
2494 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
2495
2496         * sh.c (ra.h): Don't #include.
2497         (hard_regs_intersect_p): New function, resurrected from ra.c.
2498
2499         * sh.c: Fix 1996 Copyright.
2500
2501 2005-01-24  Richard Henderson  <rth@redhat.com>
2502             Aldy Hernandez  <aldyh@redhat.com>
2503
2504         * regrename.c (note_sets): Handle subregs.
2505
2506 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
2507
2508         PR bootstrap/18058
2509         * genconditions.c (write_header, write_conditions): Elide file if
2510         not GCC >= 3.0.1.
2511
2512 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
2513
2514         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
2515         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
2516         Update copyright.
2517
2518 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2519
2520         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
2521         expand_builtin_printf, expand_builtin_fprintf,
2522         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
2523         checking against POINTER_TYPE.
2524         (validate_arglist): Handle POINTER_TYPE code by checking
2525         POINTER_TYPE_P.
2526
2527 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
2528
2529         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
2530         init_rtlanal): New.
2531         (for_each_rtx): Call for_each_rtx_1.
2532         * rtl.h (init_rtlanal): Declare.
2533         * toplev.c (backend_init): Call init_rtlanal.
2534
2535 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
2536
2537         * flow.c (propagate_one_insn): Formatting.
2538
2539         PR middle-end/19551
2540         * flow.c (libcall_dead_p): Be more conservative if unsure.
2541         If there are any instructions between insn and call, see if they are
2542         all dead before saying the libcall is dead.
2543
2544 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
2545
2546         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
2547         operand constraint for operand 0.
2548
2549 2005-01-23  Richard Henderson  <rth@redhat.com>
2550
2551         PR 19486
2552         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
2553         edges leading to join block.
2554
2555 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2556
2557         * expmed.c (expand_mult_highpart): Make static.  Change type of
2558         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
2559         (expand_divmod): Updates calls to expand_mult_highpart by using
2560         gen_int_mode to pass a CONST_INT rtx.
2561         * rtl.h (expand_mult_highpart): Remove prototype.
2562
2563 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2564
2565         * flow.c (regset_bytes, regset_size): Remove.
2566
2567         * cfganal.c: Fix a reference to Harvey's paper.
2568
2569 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2570
2571         PR rtl-optimization/19464
2572         * tree-optimize.c (init_tree_optimization_passes): Add one more
2573         copyrename pass just before out-of-ssa.
2574
2575 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
2576
2577         PR bootstrap/18058
2578         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
2579         * ggc-none.c (ggc_free): Define.
2580
2581 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2582
2583         * cse.c (max_reg, max_insn_uid): Remove.
2584         (cse_main): Don't access max_reg or max_insn_uid.
2585
2586         * c-common.c (explicit_flag_signed_bitfields,
2587         lang_statement_code_p, lang_expand_function_end): Remove.
2588         * c-common.h: Remove the corresponding declarations.
2589         * c-opts.c (c_common_handle_option): Remove all write access
2590         to explicit_flag_signed_bitfields.
2591
2592         * cgraph.c (cgraph_varpool_n_nodes): Remove.
2593         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
2594         * cgraph.h: Remove the corresponding declaration.
2595
2596         * gcse.c (null_pointer_info): Remove.
2597
2598 2005-01-23  Roger Sayle  <roger@eyesopen.com>
2599             Eric Botcazou  <ebotcazou@libertysurf.fr>
2600
2601         * combine.c (simplify_logical): Only simplify logical expressions
2602         of the form ior(and(x,y),z) by the inverse distributive law if the
2603         result is cheaper than the original.
2604
2605 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
2606
2607         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
2608         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
2609         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
2610         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
2611         config/freebsd-spec.h, config/arm/arm.h,
2612         config/h8300/h8300.md, config/i386/i386.md,
2613         config/i386/predicates.md, config/i386/sse.md,
2614         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
2615         config/vax/vax.md: Fix comment typos.  Follow spelling
2616         conventions.
2617
2618 2005-01-23  Steven Bosscher  <stevenb@suse.de>
2619
2620         * gengtype.c (walk_type): Produce `not equal to' compares for loop
2621         tests, instead of `less than'.
2622
2623 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
2624
2625         * function.c (assign_parm_setup_block): When creating a new stack slot
2626         for a parameter, get its alignment from the parameter's DECL_ALIGN
2627         rather than the type's TYPE_ALIGN.  Make sure that the parameter
2628         is at least word aligned.
2629
2630 2005-01-22  Roger Sayle  <roger@eyesopen.com>
2631
2632         PR middle-end/19378
2633         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
2634
2635 2005-01-22  Richard Henderson  <rth@redhat.com>
2636
2637         PR target/19506
2638         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
2639         in both compare operands.
2640         (movdfcc_1_sse_max): Likewise.
2641         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
2642         (movdfcc_1_sse): Likewise.
2643         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
2644         scratch register as needed.
2645
2646 2005-01-22  Richard Henderson  <rth@redhat.com>
2647
2648         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
2649
2650         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
2651
2652 2005-01-22  Richard Henderson  <rth@redhat.com>
2653
2654         * genopinit.c (optabs): Use smin/smax for floating point too.
2655         * doc/md.texi: Update to match.  Clarify that floating point
2656         results are undefined for +0/-0 and NaN.
2657         * doc/rtl.texi: Likewise.
2658         * rtl.def (SMIN, SMAX): Likewise
2659         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
2660
2661         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
2662         leading 's' to the name.
2663         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
2664         smaxxf3, sminxf3): Likewise.
2665         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
2666         Likewise.
2667
2668 2005-01-22  Paul Brook  <paul@codesourcery.com>
2669
2670         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
2671
2672 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
2673
2674         * config/s390/s390.c (struct processor_costs): New fields
2675         dlgr, dlr, dr, dsgfr, dsgr.
2676         (z900_cost, z990_cost): Values for new fields.
2677         (s390_rtx_costs): New cases MEM und COMPARE in switch
2678         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
2679         DIV, MOD, UDIV, UMOD.
2680
2681 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
2682
2683         * config/s390/s390.md ("doloop_si64"): Reload input value directly
2684         into the register being decremented.
2685         ("doloop_si31", "doloop_di"): Likewise.
2686         ("*doloop_si_long"): Adapt pattern.
2687
2688 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
2689
2690         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
2691         access registers.
2692         (CLASS_MAX_NREGS): Likewise.
2693
2694 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
2695
2696         * doc/tree-ssa.texi (Statement Operands): Add example for new
2697         must-def macro. Note deprecation of old operands interface.
2698
2699 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
2700
2701         PR tree-optimization/19484
2702         * tree-cfg.c (remove_fallthru_edge): New function.
2703         (cleanup_control_flow): Remove fallthru edges from calls that are
2704         now known not to return.
2705
2706 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
2707
2708         Fix PR tree-optimization/19038
2709         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
2710         copies with loop variant ones.
2711
2712 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
2713
2714         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
2715         config/alpha/alpha-protos.h, config/alpha/alpha.h,
2716         config/alpha/alpha.md, config/alpha/predicates.md,
2717         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
2718         config/sparc/sol2.h: Update copyright.
2719
2720         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
2721         first label to see if it is a nonlocal label.
2722
2723 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
2724             Andrew Pinski  <pinskia@physics.uc.edu>
2725
2726         PR target/19491
2727         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
2728         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
2729
2730 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
2731
2732         * config/rs6000/rtems.h: Update copyright.
2733
2734 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
2735
2736         PR target/19548
2737         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
2738         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
2739         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
2740
2741 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
2742
2743         PR c/18809
2744         * c-typeck.c (convert_arguments): Check for error_mark_node.
2745
2746 2005-01-21  Ian Lance Taylor  <ian@airs.com>
2747
2748         PR tree-optimization/13000
2749         * tree-inline.c: Include "tree-flow.h".
2750         (expand_call_inline): If warn_return_type, warn if non-void inline
2751         function falls through.
2752         * tree-cfg.c (execute_warn_function_return): Don't warn about
2753         control reaching end if TREE_NO_WARNING is set.  Set
2754         TREE_NO_WARNING.
2755         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
2756         has been lowered.
2757         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
2758         branch if we don't need one.
2759         * c-typeck.c: Include "tree-flow.h"
2760         (c_finish_bc_stmt): Don't add a goto if the current statement
2761         list doesn't fall through to the current point.
2762
2763 2005-01-21  Roger Sayle  <roger@eyesopen.com>
2764
2765         PR rtl-optimization/576
2766         * real.c (real_arithmetic): Change return type from void to bool
2767         to return an indication that the result may be inexact.
2768         * real.h (real_arithmeric): Update prototype.
2769         * fold-const.c (const_binop):  Don't constant fold floating
2770         point expressions when the user specifies -frounding-math and
2771         the result may depend upon the run-time rounding mode.
2772         (fold_convert_const_real_from_real): Clean-up.
2773         (fold_initializer): Ignore flag_rounding_math for initializers.
2774         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
2775         constant fold FP operations with flag_rounding_math if the
2776         result may depend upon the run-time rounding mode.
2777
2778 2005-01-21  Tom Tromey  <tromey@redhat.com>
2779
2780         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
2781
2782 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
2783
2784         * tree-cfg.c: Fix comment typos.
2785
2786 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
2787
2788         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
2789         around the call to rest_of_handle_branch_target_load_optimize.
2790
2791 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
2792
2793         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
2794         (sparc64-*-openbsd*): Likewise.
2795         (sparclite-*-elf*): Include tm-dwarf2.h.
2796         (sparc86x-*-elf*): Likewise.
2797         (sparc64-*-elf*): Likewise.
2798         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
2799         (DBX_DEBUGGING_INFO): Likewise.
2800         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
2801         (PREFERRED_DEBUGGING_TYPE): Likewise.
2802         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
2803         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
2804         (PREFERRED_DEBUGGING_TYPE): Likewise.
2805         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
2806         (PREFERRED_DEBUGGING_TYPE): Likewise.
2807         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
2808
2809 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
2810
2811         PR target/18701
2812         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
2813
2814 2005-01-20  Paul Brook  <paul@codesourcery.com>
2815
2816         * doc/rtl.texi: Document value extension requirements for CONST_INT.
2817
2818 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2819
2820         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
2821         label is first in a sequence of labels.
2822
2823         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
2824
2825 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
2826             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
2827
2828         * doc/sourcebuild.texi (Test Directives): New.
2829
2830 2005-01-20  Roger Sayle  <roger@eyesopen.com>
2831
2832         * real.c (real_floor): Don't leave the result uninitialized when
2833         mode is VOIDMode, but return the unrounded intermediate value.
2834         (real_ceil): Likewise.
2835
2836 2005-01-20  Paul Brook  <paul@codesourcery.com>
2837
2838         * config/arm/arm.md (insv): Use gen_int_mode.
2839
2840 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
2841
2842         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
2843         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2844         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2845         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2846         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
2847
2848 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
2849
2850         Fix PR debug/19124
2851         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
2852         fbreg, so we have to assume we can't.
2853         (loc_descriptor_from_tree_1): Ditto.
2854         (containing_function_has_frame_base): New function.
2855         (add_location_or_const_value_attribute): Use it.
2856         Also try to generate a frame_base from a single element location
2857         list.
2858
2859 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2860
2861         PR tree-optimization/15349
2862         * timevar.def (TV_TREE_MERGE_PHI): New.
2863         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
2864         PHI_WANTED.
2865         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
2866         calls to tree_forwarder_block_p.
2867         (remove_forwarder_block_with_phi, merge_phi_nodes,
2868         gate_merge_phi, pass_merge_phi): New.
2869         * tree-optimize.c (init_tree_optimization_passes): Add
2870         pass_merge_phi.
2871         * tree-pass.h: Add an extern for pass_merge_phi;
2872
2873 2005-01-20  Richard Henderson  <rth@redhat.com>
2874
2875         PR target/19418
2876         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
2877         (_mm_castps_pd, _mm_castps_si128): New.
2878         (_mm_castsi128_ps, _mm_castsi128_pd): New.
2879
2880 2005-01-20  Richard Henderson  <rth@redhat.com>
2881
2882         PR target/19530
2883         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
2884         __builtin_ia32_vec_init_v2si.
2885         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
2886         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
2887         (ix86_init_mmx_sse_builtins): Create it.
2888         (ix86_expand_builtin): Expand it.
2889         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
2890         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
2891         (vec_extractv2si_0, vec_extractv2si_1): New.
2892
2893 2005-01-20  Richard Henderson  <rth@redhat.com>
2894
2895         PR target/16533
2896         * config/i386/i386.c (ix86_expand_push): New.
2897         * config/i386/mmx.md (push<MMXMODE>1): New.
2898         * config/i386/sse.md (push<SSEMODE>1): New.
2899         * config/i386/i386-protos.h: Update.
2900
2901 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
2902
2903         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
2904         copyright.
2905
2906 2005-01-20  Richard Henderson  <rth@redhat.com>
2907
2908         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
2909         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
2910
2911 2005-01-19  Richard Henderson  <rth@redhat.com>
2912
2913         PR target/19350
2914         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
2915         to V4SFmode in SSE1 fallback load path.
2916
2917 2005-01-19  Richard Henderson  <rth@redhat.com>
2918
2919         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
2920         in QImode expansion to ix86_expand_vector_set.
2921         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
2922
2923 2005-01-19  Richard Henderson  <rth@redhat.com>
2924
2925         PR target/19511
2926         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
2927         subclass of the input class.
2928         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
2929         Always true for cross-SSE1 classes.  Rationalize conditionals.
2930         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
2931         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
2932         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
2933         (movdi_2): Add MMX/SSE zeros.
2934         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
2935         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
2936         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
2937         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
2938         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
2939         (zero_extendsidi2_rex64_1): Remove.
2940         (MOV0 peephole): Check GENERAL_REG_P.
2941
2942 2005-01-19  Richard Henderson  <rth@redhat.com>
2943
2944         PR target/19427
2945         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
2946         shufps elements.
2947         (ix86_expand_vector_extract): Likewise.
2948
2949 2005-01-19  Richard Henderson  <rth@redhat.com>
2950
2951         PR middle-end/19304
2952         * expr.c (emit_move_change_mode): New argument force; use
2953         simplify_gen_subreg if true.
2954         (emit_move_via_alt_mode): Merge into ...
2955         (emit_move_via_integer): ... here.
2956         (emit_move_ccmode): Use emit_move_change_mode directly.
2957
2958 2005-01-19  Richard Henderson  <rth@redhat.com>
2959
2960         PR target/19518
2961         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
2962         (alpha_preferred_reload_class): Handle CONST_VECTOR.
2963         (alpha_emit_set_const_1): Add no_output parameter; don't emit
2964         rtl if true.
2965         (alpha_emit_set_const): Likewise.  Make static.
2966         (alpha_emit_set_long_const): Make static.
2967         (alpha_extract_integer): Split out from alpha_expand_mov.
2968         (alpha_split_const_mov): Likewise.
2969         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
2970         (alpha_legitimate_constant_p): New.
2971         * config/alpha/alpha-protos.h: Update.
2972         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
2973         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
2974         * config/alpha/alpha.md (movsi): Add n alternative.
2975         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
2976         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
2977         (splitters for all of the above): Use alpha_split_const_mov.
2978         * config/alpha/predicates.md (non_add_const_operand): New.
2979         (non_zero_const_operand): New.
2980         (input_operand): Use alpha_legitimate_constant_p after reload.
2981
2982 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
2983
2984         PR tree-optimization/19038
2985         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
2986         (add_candidate): Add ivs with increment in latch only if
2987         allow_ip_end_pos_p is true.
2988         (determine_iv_cost): Use empty_block_p.
2989
2990 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
2991
2992         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
2993         (compute_dominance_frontiers): Ditto.
2994
2995 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
2996
2997         PR target/19529
2998         * config/sh/t-rtems: New.
2999         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
3000
3001 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
3002
3003         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
3004         the offset of the selected field.
3005
3006 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
3007
3008         * tree-cfg.c (remove_forwarder_block): Fix the check to
3009         prevent a nonlocal label from appearing in the middle of a
3010         basic block.
3011
3012 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
3013
3014         PR rtl-optimization/19462
3015         * reorg.c (find_end_label): Create return insn only if
3016         current_function_epilogue_delay_list is empty.
3017
3018 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
3019
3020         * doc/passes.texi: Remove paragraph mentioning new-ra.
3021
3022 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
3023
3024         PR rtl-optimization/15139
3025         * combine.c: Include params.h.
3026         (count_rtxs): New function.
3027         (record_value_for_reg): If replace_rtx would replace at least
3028         2 occurrences of REG in VALUE and TEM is really large, replace REG with
3029         (clobber (const_int 0)) instead of TEM.
3030         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
3031         * params.h (MAX_LAST_VALUE_RTL): New.
3032         * Makefile.in (combine.o): Depend on $(PARAMS_H).
3033         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
3034
3035         PR c/17297
3036         * c-typeck.c (digest_init): Only call build_vector if all constructor
3037         elements are *_CST nodes.
3038         * gimplify.c (gimplify_init_constructor): Likewise.
3039
3040         PR middle-end/19164
3041         * c-typeck.c (digest_init): Only call build_vector if inside_init
3042         is a CONSTRUCTOR.
3043
3044 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
3045
3046         * toplev.c (init_asm_output): Remove dead #ifdef.
3047
3048 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
3049
3050         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
3051
3052 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3053
3054         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
3055         accessing DECL_FUNCTION_CODE.
3056         * dojump.c (do_jump): Likewise.
3057         * gimplify.c (gimplify_call_expr): Likewise.
3058         * predict.c (expr_expected_value): Likewise.
3059         (strip_builtin_expect): Likewise.
3060         * tree-inline.c (estimate_num_insns_1): Likewise.
3061         * tree-ssa-loop-im.c (stmt_cost): Likewise
3062         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
3063         (tree_expr_nonnegative_p): Likewise.
3064
3065 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3066
3067         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
3068         variant of the load_pcrel_sym pattern.
3069         * config/sparc/sparc.md (P macro): Move to the top.
3070         (load_pcrel_sym): Macroize using P.
3071         (save_register_window): Likewise.
3072
3073 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
3074
3075         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
3076         ("sordered"): Same.
3077
3078 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
3079
3080         PR C/19472
3081         * c-typeck.c (build_asm_expr): Strip nops off
3082         input memory operands.
3083
3084 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
3085
3086         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
3087         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
3088         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
3089         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
3090
3091 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
3092
3093         PR target/19379
3094         * config/i386/i386.c (override_options): If the 80387 is disabled,
3095         then do not return FP values using FP registers.
3096
3097 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
3098
3099         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
3100         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
3101         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
3102         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
3103         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
3104         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
3105         output.h, postreload-gcse.c, postreload.c, recog.c,
3106         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
3107         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
3108         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
3109         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
3110         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
3111         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
3112         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
3113         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
3114
3115         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
3116         config/alpha/alpha.c, config/arm/vfp.md,
3117         config/i386/emmintrin.h, config/i386/i386-modes.def,
3118         config/i386/i386-protos.h, config/i386/i386.h,
3119         config/i386/pmmintrin.h, config/i386/ppro.md,
3120         config/i386/predicates.md, config/i386/xmmintrin.h,
3121         config/i860/i860.c, config/ia64/ia64-modes.def,
3122         config/ia64/ia64-protos.h, config/ia64/ia64.h,
3123         config/ia64/ia64.md, config/ia64/itanium1.md,
3124         config/ia64/itanium2.md, config/ia64/predicates.md,
3125         config/iq2000/iq2000.h, config/mips/linux64.h,
3126         config/rs6000/aix41.h, config/rs6000/aix43.h,
3127         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
3128         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
3129         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
3130         config/sparc/linux64.h, config/sparc/litecoff.h,
3131         config/sparc/sp64-elf.h, config/sparc/sparc.c,
3132         config/sparc/sparc.h, config/sparc/sparc.md,
3133         config/sparc/sysv4-only.h: Update copyright.
3134
3135 2005-01-18  Richard Henderson  <rth@redhat.com>
3136
3137         PR target/19496
3138         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
3139
3140 2005-01-18  Marc Espie  <espie@openbsd.org>
3141         * config/i386/openbsdelf.h: Typo.
3142
3143 2005-01-18  Richard Henderson  <rth@redhat.com>
3144
3145         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
3146         special case for sse.
3147         * config/i386/predicates.md (sse_comparison_operator): Likewise.
3148
3149 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
3150
3151         * tree-inline.c (estimate_num_insns_1): Added cases for
3152         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
3153
3154 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
3155
3156         PR rtl-optimization/19296
3157         * combine.c (simplify_comparison): Rewrite the condition under
3158         which a non-paradoxical SUBREG of a PLUS can be lifted when
3159         compared against a constant.
3160
3161 2005-01-18  Andi Kleen <ak@muc.de>
3162
3163         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
3164         * c.opt (-Wpointer-sign): Add.
3165         * doc/invoke.texi: (-Wpointer-sign): Add.
3166
3167 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3168
3169         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
3170         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
3171         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
3172         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
3173         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
3174         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
3175         for TARGET_MIX_SSE_I387.
3176         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
3177         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
3178         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
3179         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
3180         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
3181         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
3182         TARGET_MIX_SSE_I387.
3183         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
3184         from expander.
3185
3186 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
3187
3188         PR target/19424
3189         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
3190         Add movaps alternative for xmm reg->reg move.
3191
3192 2005-01-17  Jeff Law  <law@redhat.com>
3193
3194         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
3195         at the end of the main DOM loop rather than just before DOM exits.
3196
3197 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
3198
3199         PR tree-optimization/19121
3200         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
3201         adding aliases to a name tag, also add them to the pointer's
3202         type tag.
3203         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
3204         sensitive alias info at all.  Only check that the two pointers
3205         have compatible pointed-to sets.
3206         * tree-ssa.c (verify_name_tags): Verify that the alias set of
3207         a pointer's type tag is a superset of the alias set of the
3208         pointer's name tag.
3209
3210 2005-01-17  James E Wilson  <wilson@specifixinc.com>
3211
3212         PR target/19357
3213         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
3214         comment to document why.
3215
3216 2005-01-17  Richard Henderson  <rth@redhat.com>
3217
3218         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
3219         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
3220         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
3221         sse2_vmsminv2df3_finite): New.
3222         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
3223         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
3224         Force op1 into register.
3225
3226 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
3227
3228         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
3229         bubblestrap from always rebuilding build directory.
3230
3231 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
3232
3233         * config/s390/s390.md ("*clc"): Remove incorrect '='.
3234         ("*cmpmem_short"): Likewise.
3235
3236 2005-01-17  Steven Bosscher  <stevenb@suse.de>
3237
3238         * basic-block.h: Document BB_* flags.
3239         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
3240         use an sbitmap instead.
3241         * sched-rgn.c (compute_trg_info): Likewise.
3242
3243 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
3244
3245         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
3246         redundant target_cpu_default and extra_parts lines.  Use the default
3247         "from-abi" ISA.
3248         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
3249         (SUBTARGET_EXTRA_SPECS): Delete.
3250         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
3251         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
3252         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
3253         and "n32" for -mabi=n32.
3254
3255 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3256
3257         PR c/5675
3258         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
3259         fold constant variables into initial values.
3260
3261 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3262
3263         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
3264
3265         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
3266         through the statements backward.
3267
3268 2005-01-17  Ian Lance Taylor  <ian@airs.com>
3269
3270         PR middle-end/13127:
3271         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
3272         a variable set to the return value of the inlined function.
3273
3274 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
3275
3276         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
3277         when modes are tieable.
3278
3279 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
3280
3281         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
3282         of pthread_create to find out if threads are enabled.
3283         * gthr-posix95.h (__gthread_active_p): Likewise.
3284
3285 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
3286
3287         * common.opt (-fnew-ra): Remove.
3288         * ra*.*: Remove.
3289         * toplev.h (flag_new_regalloc): Remove.
3290         * Makefile.in (ra*.*): Don't mention.
3291         * passes.c (rest_of_handle_new_regalloc): Remove.
3292         (rest_of_handle_combine, rest_of_compilation): Always consider
3293         flag_new_regalloc as false.
3294         * doc/invoke.texi: Don't document -fnew-ra.
3295
3296 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
3297
3298         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
3299         last parameter to reg_scan.
3300         * loop.c (loop_optimize): Likewise.
3301         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
3302         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
3303         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
3304         rest_of_handle_gcse, rest_of_handle_loop_optimize,
3305         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
3306         * regclass.c (reg_scan): Likewise, for the declaration.
3307         * rtl.h (reg_scan): Likewise, for the prototype.
3308
3309 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
3310
3311         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
3312         mark_dfs_back_edges.
3313
3314 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
3315
3316         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
3317         (compute_avail): Uses don't go in tmp_gen.
3318
3319 2005-01-16  Steven Bosscher  <stevenb@suse.de>
3320
3321         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
3322         loop to look for a free slot in a page entry.
3323
3324 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3325
3326         PR target/16304
3327         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
3328         * toplev.c (compile_file): Call process_pending_assemble_output_defs
3329         just before targetm.asm_out.file_end.
3330         * tree.h (process_pending_assemble_output_defs): Declare.
3331         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
3332         New functions.
3333         (assemble_alias): Defer generation of assembly code for defines when
3334         TARGET_DEFERRED_OUTPUT_DEFS is true.
3335         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3336         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
3337         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
3338
3339 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3340
3341         PR target/19336
3342         * pa.c (pa_scalar_mode_supported_p): New function.
3343         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
3344         * pa.h (MIN_UNITS_PER_WORD): Add comment.
3345
3346         * pa-protos.h (prefetch_operand): Delete.
3347         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
3348         * pa.c (prefetch_operand): Delete.
3349         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
3350         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
3351         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
3352         and prefetch_nocc_operand.
3353         * pa.md (prefetch): Rework to avoid reload problems handling short
3354         displacements when a cache control completer needs to be provided.
3355         (prefetch_32, prefetch_64): Delete.
3356         (prefetch_cc, prefetch_nocc): New patterns.
3357
3358 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
3359
3360         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
3361
3362 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3363
3364         PR ada/19388
3365         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
3366         exceeds maximum alignment for global common data.
3367         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
3368         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
3369
3370 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3371
3372         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
3373
3374 2004-01-15  Roger Sayle  <roger@eyesopen.com>
3375
3376         * harg-reg-set.h (reg_class_names): Prototype global array.
3377         * regclass.c (reg_class_names): Declare here and initialize to
3378         REG_CLASS_NAMES.
3379         (dump_regclass): Remove local declaration of reg_class_names.
3380         (regclass): Likewise.
3381         * cfg.c (dump_flow_info): Likewise.
3382         * ra-debug.c (reg_class_names): Likewise.
3383         * regrename.c (reg_class_names): Likewise.
3384         * reload.c (reg_class_names): Likewise.
3385         * reload1.c (spill_failure): Likewise.
3386         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
3387
3388 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
3389
3390         * config/s390/s390.md ("reload_outti"): Remove predicate for
3391         output operand.  Abort if operand is not a MEM.
3392         ("reload_outdi", "reload_outdf"): Likewise.
3393
3394 2005-01-15  Marc Espie  <espie@openbsd.org>
3395
3396         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
3397         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
3398         * config/openbsd.h:  Fix C++ includes for native configurations.
3399         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
3400         Add trampoline support.
3401         * config/i386/openbsdelf.h: New.
3402
3403 2005-01-15  Marc Espie  <espie@openbsd.org>
3404
3405         * collect2.c (main): Explicitly parse -dynamic-linker option.
3406
3407 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
3408
3409         PR tree-optimization/19060
3410         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
3411         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
3412         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
3413         and handle extract_range_from_cond returning false.
3414         * fold-const.c (fold): Optimize comparisons with min/max even for
3415         width > HOST_BITS_PER_WIDE_INT.
3416
3417 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
3418
3419         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
3420         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
3421         Remove little endian multilib variants.
3422         Add mips32 multilib variant.
3423
3424 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
3425
3426         * explow.c (copy_all_reg, stabilize): Remove.
3427         * expr.h: Remove the corresponding prototypes.
3428
3429         * rtlanal.c (regs_set_between_p): Remove.
3430         * rtl.h: Remove the corresponding prototype.
3431
3432 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
3433
3434         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
3435         to rs6000_nonimmediate_operand.
3436         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
3437         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
3438         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
3439         rs6000_nonimmediate_operand.
3440         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
3441         rs6000_nonimmediate_operand.
3442
3443 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
3444
3445         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
3446
3447 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3448
3449         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
3450         on e500v2.
3451         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
3452         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
3453
3454         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
3455         (rs6k_nonimmediate_operand): New.
3456         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
3457         correctly.
3458         (legitimate_lo_sum_address_p): Same.
3459         (rs6000_legitimize_address): Same.
3460         (rs6000_legitimize_reload_address): Same.
3461         (rs6000_legitimate_address): Same.
3462         (spe_build_register_parallel): Pass DF and DC modes in a DI
3463         register.
3464
3465         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
3466         to rs6k_nonimmediate_operand.
3467
3468         * config/rs6000/spe.md ("*frob_df_di"): New.
3469         ("*frob_di_df"): New.
3470         ("*frob_di_df_2"): New.
3471         ("*mov_sidf_e500_subreg0"): New.
3472         ("*mov_sidf_e500_subreg4"): New.
3473         ("*movdf_e500_double"): Change predicate to
3474         rs6k_nonimmediate_operand.
3475
3476 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
3477
3478         * postreload.c (move2add_note_store): Only call