OSDN Git Service

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