OSDN Git Service

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