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