OSDN Git Service

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