OSDN Git Service

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