OSDN Git Service

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