OSDN Git Service

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