OSDN Git Service

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