OSDN Git Service

* ifcvt.c (noce_emit_move_insn): Remove inmode.
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-03-09  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * cfglayout.c (fixup_reorder_chain): Remove old_bb.
4
5         * cfgrtl.c (cfg_layout_merge_blocks): Remove new_e.
6
7         * expr.c (expand_assignment): Remove orig_to_rtx.
8
9         * fold-const.c (int_const_binop): Remove no_overflow.
10
11         * ifcvt.c (noce_emit_move_insn): Remove inmode.
12
13 2005-03-08  Jeff Law  <law@redhat.com>
14
15         * tree-cfg.c (cleanup_control_flow): If removal of a computed
16         goto results in the removal of edges in the CFG, then we need
17         to recompute dominators.
18
19 2005-03-09  Ben Elliston  <bje@au.ibm.com>
20
21         * c-common.c (c_do_switch_warnings): Comment fix.
22
23 2005-03-08  Julian Brown  <julian@codesourcery.com>
24
25         * Patch from 2005-03-08 reverted for causing regressions and
26         ppc-darwin bootstrap failure.
27
28 2005-03-08  Fariborz Jahanian <fjahanian@apple.com>
29
30         * config/rs6000/rs6000.c (invalid_arg_for_unprototyped_fn): 
31         Define the real function for ppc-darwin.
32         * c-typeck.c (convert_arguments): Check for target-specific
33         invalid argument call to unprototyped function.
34         * target-def.h (TARGET_INVALID_ARG_FOR_UNPROTOTYPED_FN): 
35         New Macro.
36         * target.h (invalid_arg_for_unprototyped_fn): New field 
37         in struct calls.
38         * targhooks.c (hook_invalid_arg_for_unprototyped_fn): New 
39         default target hook.
40         * targhooks.h (hook_invalid_arg_for_unprototyped_fn): 
41         Declare.
42
43 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
44
45         * c-typeck.c (constructor_stack, constructor_range_stack,
46         initializer_stack): Make them static.
47
48         * cfg.c (rbi_pool): Make it static.
49
50         * gimple-low.c (lower_stmt_body): Make it static.
51         * tree-flow.h: Remove the corresponding prototype.  Don't
52         declare lower_data.
53
54         * sched-deps.c (cache_size): Make it static.
55
56         * stor-layout.c (lang_adjust_rli): Make it static.
57
58 2005-03-08  Julian Brown  <julian@codesourcery.com>
59
60         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
61         from being used for symbols with vague linkage when
62         HAVE_GAS_COMDAT_GROUP is true.
63
64 2005-03-08  J"orn Rennecke <joern.rennecke@st.com>
65
66         * jump.c (invert_jump_1): Don't call redirect_jump_1 with
67         nlabel == JUMP_LABEL (jump).
68
69 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
70
71         * c-common.c, c-opts.c, combine.c, cse.c, dojump.c,
72         gimplify.c, tree-dfa.c, tree-ssa-loop-ivopts.c,
73         tree-ssa-phiopt.c, tree-ssa-pre.c, tree-ssa-sink.c,
74         tree-vect-analyze.c, tree.def, tree.h: Fix comment formatting.
75
76 2005-03-08  Alexey Neyman  <alex.neyman@auriga.ru>
77
78         PR c/14411
79         * calls.c (flags_from_decl_or_type): Handle eturns_twice' attribute.
80         * c-common.c (handle_returns_twice): New function.
81         (c_common_attribute_table): Declare eturns_twice' attribute.
82         * doc/extend.texi: Document eturns_twice' attribute.
83         * tree.h (DECL_IS_RETURNS_TWICE): New macro.
84         (struct tree_decl): Add returns_twice_flag.
85
86 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
87
88         * tree-ssa-phiopt.c: Fix a comment typo.
89
90         * c-semantics.c, cfghooks.c, diagnostic.h, loop-iv.c,
91         loop-unswitch.c, modulo-sched.c, stor-layout.c, tree-gimple.h,
92         config/i386/cygwin1.c, doc/cfg.texi, doc/objc.texi: Update
93         copyright.
94
95 2005-03-08  Richard Henderson  <rth@redhat.com>
96
97         * config/alpha/alpha.c (code_for_builtin): Replace special-case
98         builtin codes with ctzdi2, clzdi2, popcountdi2.
99         (struct alpha_builtin_def): Add is_const.
100         (zero_arg_builtins, one_arg_builtins, two_arg_builtins): Init it.
101         (alpha_v8qi_u, alpha_v8qi_s, alpha_v4hi_u, alpha_v4hi_s): New.
102         (alpha_init_builtins): Init them.  Set nothrow and const attributes
103         on builtins.
104         (alpha_fold_builtin_cmpbge, alpha_fold_builtin_zapnot, 
105         alpha_fold_builtin_extxx, alpha_fold_builtin_insxx, 
106         alpha_fold_builtin_mskxx, alpha_fold_builtin_umulh, 
107         alpha_fold_vector_minmax, alpha_fold_builtin_perr,
108         alpha_fold_builtin_pklb, alpha_fold_builtin_pkwb,
109         alpha_fold_builtin_unpkbl, alpha_fold_builtin_unpkbw,
110         alpha_fold_builtin_cttz, alpha_fold_builtin_ctlz,
111         alpha_fold_builtin_ctpop, alpha_fold_builtin): New.
112         (TARGET_FOLD_BUILTIN): New.
113         * config/alpha/alpha.md (UNSPEC_CTTZ): Remove.
114         (UNSPEC_CTLZ, UNSPEC_CTPOP): Remove.
115         (ffsdi2): Use ctz.
116         (cttz, builtin_cttz, builtin_ctlz, builtin_ctpop): Remove.
117
118 2005-03-08  Ira Rosen  <irar@il.ibm.com>
119
120         PR tree-optimization/20122
121         * tree-vect-analyze.c (vect_object_analysis): Analyze initial
122         condition of access function instead of base.
123
124 2005-03-07  Jeff Law  <law@redhat.com>
125             Steven Bosscher  <stevenb@suse.de>
126
127         * tree-cfg.c (find_taken_edge_computed_goto): New function.
128         (find_taken_edge): Call find_taken_edge_computed_goto as
129         appropriate.  Allow any gimple invariant rather than just
130         INTEGER_CST for VAL.
131         (cleanup_control_flow): Cleanup a computed goto which has turned
132         into a simple goto.
133         (tree_merge_blocks): If block B has any forced labels, move
134         them to the start of block A.
135         * tree-ssa-dom.c (thread_across_edge): Allow threading across
136         computed gotos as well.
137         * tree-ssa-threadupdate.c (remove_ctrl_stmt_and_useless_edges): Handle
138         removal of unnecessary computed gotos too.
139         (lookup_redirection_data): Fix type of INSERT argument.  Callers
140         updated.
141
142 2005-03-08  Kazu Hirata  <kazu@cs.umass.edu>
143
144         * tree-ssa-phiopt.c: Update copyright.  Fix indentations.
145         Remove trailing spaces.
146
147         * gimplify.c (gimple_push_bind_expr, gimple_pop_bind_expr,
148         unshare_all_trees): Make them static.
149         * tree-gimple.h: Remove the corresponding prototypes.
150
151         * diagnostic.h: Remove unused prototype
152         debug_output_buffer.
153         * modulo-sched.c: Remove unused prototype
154         set_row_column_for_ps.
155
156         * tree-ssa-phiopt.c (tree_ssa_phiopt,
157         replace_phi_edge_with_variable): Remove unused variable i.
158
159 2005-03-07  Per Bothner  <per@bothner.com>
160
161         * tree.h (DECL_IS_BUILTIN): Reverted my patch from earlier today.
162
163 2005-03-06  Andrew Pinski  <pinskia@physics.uc.edu>
164         
165         PR tree-opt/17671
166         * tree-ssa-phiopt.c (tree_ssa_phiopt): Rewrite so we base the
167         bbs on the COND_EXPR instead of the PHI_NODEs.
168         (candidate_bb_for_phi_optimization): Remove.
169         (replace_phi_with_stmt): Rename to ...
170         (replace_phi_edge_with_variable): this and change so that we
171         replace the phi argument instead of removing the PHI.
172         (conditional_replacement): Change so we deal with PHI with more
173         than two arguments.
174         (value_replacement): Likewise.
175         (abs_replacement): Likewise.
176
177 2005-03-07  Aldy Hernandez  <aldyh@redhat.com>
178
179         * config/rs6000/rs6000-protos.h: Rename output_e500_flip_eq_bit to
180         output_e500_flip_gt_bit.
181
182         * config/rs6000/rs6000.c (print_operand): case D: Print out bit 31
183         as bit 31.
184         (rs6000_generate_compare): Fix logic to look at the correct bits.
185         (output_e500_flip_eq_bit): Rename to output_e500_flip_gt_bit.
186         Look at GT bit.
187         (rs6000_emit_sCOND): Rename gen_e500_flip_eq_bit to
188         gen_e500_flip_gt_bit.  Rename gen_move_from_CR_eq_bit to
189         gen_move_from_CR_gt_bit.
190
191         * config/rs6000/rs6000.md ("move_from_CR_eq_bit"): Change bit
192         ("move_from_CR_eq_bit"): Rename to move_from_CR_gt_bit.
193         (UNSPEC_MV_CR_EQ): Rename to UNSPEC_MV_CR_GT.
194
195         * config/rs6000/spe.md ("e500_cr_ior_compare"): New.
196         (E500_CR_IOR_COMPARE): New constant.
197
198 2005-03-08  Earl Chew <earl_chew@agilent.com>
199             David Billinghurst <David.Billinghurst@riotinto.com>
200
201         * config/i386/host-cygwin.c: New file to support precompiled
202         headers on cygwin
203         * config/i386/x-cygwin: Use host-cygwin.c on cygwin host
204         * config.host: Use above files for cygwin host.
205
206 2005-03-07  David Edelsohn  <edelsohn@gnu.org>
207
208         * fold-const.c (fold_binary_op_with_conditional_arg): Fix typo
209         ordering ops from earlier change.
210
211 2005-03-07  Per Bothner  <per@bothner.com>
212
213         Various fixes to allow us to again build if --enable-mapped-location:
214         * c-decl.c (finish_function): Use SET_EXPR_LOCATION instead of
215         unavailable annotate_with_file_line, if USE_MAPPED_LOCATION.
216         * tree-cfg.c (remove_bb): If USE_MAPPED_LOCATION, change type of
217         local variable loc. Change logic appropriately.
218         * tree-vect-transform.c (vect_finish_stmt_generation): Use
219         EXPR_LOCATION rather than EXPR_LOCUS if USE_MAPPED_LOCATION.    
220         * c-parser.c (c_parser_for_statement): Initialize loc variable.
221         * tree.h (DECL_IS_BUILTIN): Temporarily revert definition of
222         DECL_IS_BUILTIN in the USE_MAPPED_LOCATION because of jc1 issues.
223
224 2005-03-07  Richard Sandiford  <rsandifo@redhat.com>
225
226         PR rtl-optimization/19683
227         * reload1.c (choose_reload_regs): Pass the number of bits, not the
228         number of bytes, to smallest_int_for_mode.  Fix arguments to
229         REG_CANNOT_CHANGE_MODE_P.
230
231 2005-03-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
232
233         * reorg.c (relax_delay_slots): Check that the jump is
234         conditional before trying to invert it.
235
236 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
237
238         * bb-reorder.c (max_entry_frequency, max_entry_frequency):
239         Make them static.
240
241         * calls (stack_arg_under_construction): Make it static.
242
243         * flow.c (regs_live_at_setjmp): Make it static.
244         * flow.h: Remove the corresponding prototype.
245
246         * reload1.c (reload_startobj, reload_firstobj,
247         something_needs_operands_changed, reload_inherited,
248         reload_inheritance_insn, reload_override_in,
249         reload_spill_index): Make them static.
250
251         * recog.c (verify_changes): Make it static.
252         * recog.h: Remove the corresponding prototype.
253
254         * cfgbuild.c (find_sub_basic_blocks): Remove.
255         * basic-block.h: Remove the corresponding prototype.
256         * cfgexpand.c, cfgrtl.c: Don't mention find_sub_basic_blocks
257         in comments.
258         * doc/cfg.texi: Don't mention find_sub_basic_blocks.
259
260         * tree-ssa-operands.c (check_build_stmt): Remove.
261
262         * stor-layout.c (set_alignment): Remove.
263         * tree.h: Remove the corresponding prototype.
264
265         * tree-ssa-pre.c (has_abnormal_preds): Make it static.
266
267         * tree-ssa-dce.c (control_dependence_map,
268         visited_control_parents): Make them static.
269
270         * cfghooks.c (verify_flow_info): Remove local variable
271         num_bb_notes.
272
273         * cfgrtl.c (rtl_verify_flow_info_1): Remove local variable
274         last_bb_seen.
275
276         * loop-unswitch.c (unswitch_loop): Remove local variable src.
277
278 2005-03-07  David Billinghurst <David.Billinghurst@riotinto.com>
279
280         * config/i386/cygwin1.c(mingw_scan): Use xstrdup in calls to putenv.
281
282 2005-03-07  Joseph S. Myers  <joseph@codesourcery.com>
283
284         * config/ia64/hpux.h (LINK_SPEC): Add -z.
285         * config/ia64/ia64.c (ia64_function_value): Return a REG not a
286         PARALLEL for an empty structure.
287
288 2005-03-07  Kazu Hirata  <kazu@cs.umass.edu>
289
290         * fold-const.c (fold_binary): Remove handling of RANGE_EXPR.
291
292         * fold-const.c (fold_binary): Unroll the very first "for"
293         loop.
294
295 2005-03-06  David Edelsohn  <edelsohn@gnu.org>
296
297         * config/rs6000/predicates.md (branch_comparison_operator): Remove
298         redundant match_code test.
299         (scc_comparison_operator): Swap match_operand and match_code
300         tests.
301         (branch_positive_comparison_operator): Same.
302         (trap_comparison_operator): Use comparison_operator and swap with
303         match_code test.
304
305 2005-03-06  Marek Michalkiewicz  <marekm@amelek.gda.pl>
306
307         PR target/20288
308         * config/avr/avr.c (print_operand): Add 'p' and 'r'.
309         (out_movhi_r_mr): Read low byte of volatile MEM first.
310         (out_movhi_mr_r): Write high byte of volatile MEM first.
311
312 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
313
314         * cselib.c (reg_values, reg_values_size): Make them static.
315
316         * cse.c (cse_reg_info_table): Make it static.
317
318         * fold-const.c (fold_unary): Use build1 instead of copy_node.
319
320 2005-03-06  Zdenek Dvorak  <dvorakz@suse.cz>
321
322         * cse.c (find_best_addr): Use canon_for_address.
323
324 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
325
326         * cse.c (fold_rtx_subreg, fold_rtx_mem): New.
327         (fold_rtx): Call fold_rtx_subreg and fold_rtx_mem to handle
328         SUBREG and MEM, respectively.
329
330         * fold-const.c (fold_binary): Use code instead of t.
331
332         * fold-const.c (optimize_minmax_comparison): Take decomposed
333         arguments code, type, op0, and op1 instead of t.
334         (fold_binary): Update a call to optimize_minmax_comparison.
335
336         * fold-const.c (fold_range_test): Take decomposed arguments
337         code, type, op0, and op1 instead of t.
338         (fold_binary): Update a call to fold_range_test.
339
340         * fold-const.c (fold_binary_op_with_conditional_arg): Take
341         decomposed arguments code, type, op0, and op1 instead of t.
342         (fold_binary): Update a call to fold_range_test.
343
344 2005-03-06  Kazu Hirata  <kazu@cs.umass.edu>
345
346         * fold-const.c (fold_binary): Avoid directly using the original
347         expression t as much as possible.
348
349 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
350
351         * c-semantics.c (build_stmt): Use TYPE_P instead of
352         IS_NON_TYPE_CODE_CLASS.
353         * tree.h (IS_NON_TYPE_CODE_CLASS): Remove.
354         (NON_TYPE_CHECK): Use TYPE_P instead of
355         IS_NON_TYPE_CODE_CLASS.
356
357         * fold-const.c (fold): Remove handling of binary expressions.
358
359 2005-03-05  James A. Morrison  <phython@gcc.gnu.org>
360
361         * doc/c-tree.texi: Wrap comments in @r{}.
362         * doc/cpp.texi: Likewise.
363         * doc/cppinternals.texi: Likewise.
364         * doc/extend.texi: Likewise.
365         * doc/md.texi: Likewise.
366         * doc/objc.texi: Likewise.
367         * doc/sourcebuild.texi: Likewise.
368         * doc/tm.texi: Likewise.
369         * doc/tree-ssa.texi
370
371 2005-03-05  Kazu Hirata  <kazu@cs.umass.edu>
372
373         * predict.c (apply_return_prediction): Standardize PHI chain
374         walking.
375         * tree-ssa.c (ssa_redirect_edge): Likewise.
376
377         * genattrtab.c, genemit.c, genoutput.c, genrecog.c,
378         gensupport.c, jump.c, tree-phinodes.c, unwind-dw2-fde-glibc.c:
379         Update copyright.
380
381         * tree-phinodes.c (remove_phi_node): Drop the last argument.
382         * tree-flow.h: Adjust the prototype for remove_phi_node.
383         * lambda-code.c (perfect_nestify): Adjust a call to
384         remove_phi_node.
385         * tree-cfg.c
386         (remove_phi_nodes_and_edges_for_unreachable_block): Likewise.
387         * tree-outof-ssa.c (eliminate_virtual_phis, remove_ssa_form):
388         Likewise.
389         * tree-ssa-dce.c (remove_dead_phis): Likewise.
390         * tree-ssa-loop-ivopts.c (remove_statement): Likewise.
391         * tree-ssa-pre.c (remove_dead_inserted_code): Likewise.
392         * tree-ssa.c (kill_redundant_phi_nodes): Likewise.
393
394         * combine.c (simplify_and_const_int): Use gen_int_mode instead
395         of GEN_INT (trunc_int_for_mode (...)).
396         * loop-iv.c (iv_number_of_iterations): Likewise.
397         * postreload.c (reload_cse_move2add): Likewise.
398         * simplify-rtx.c (simplify_const_unary_operation,
399         simplify_const_binary_operation): Likewise.
400         * stor-layout.c (get_mode_bounds): Likewise.
401
402         * fold-const.c (fold_binary): New.
403         (fold): Call fold_binary on binary expressions.
404
405 2005-03-05  Richard Sandiford  <rsandifo@redhat.com>
406
407         * doc/invoke.texi: Document new MIPS -msym32 and -mno-sym32 options.
408         * config/mips/mips.h (MASK_SYM32, TARGET_SYM32): New macros.
409         (TARGET_SWITCHES): Add -msym32 and -mno-sym32.
410         (ABI_HAS_64BIT_SYMBOLS): Set to false if TARGET_SYM32.
411         (ASM_SPEC): Pass down -msym32 and -mno-sym32.
412
413 2005-03-04  Devang Patel  <dpatel@apple.com>
414         
415         PR tree-optimization/18815
416         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
417         loops with zero exit edges.
418
419 2005-03-04  Devang Patel  <dpatel@apple.com>
420
421         * doc/invoke.texi: Remove reference to webpage that does not exist.
422         
423 2005-03-04  John David Anglin  <dave.danglin@nrc-cnrc.gc.ca>
424             Joseph S. Myers  <joseph@codesourcery.com>
425
426         PR c++/19797
427         * pa/elf.h, pa64-hpux.h, som.h (ASM_OUTPUT_EXTERNAL_REAL): Define.
428         (ASM_OUTPUT_EXTERNAL): Call pa_hpux_asm_output_external.
429         * pa-protos.h (pa_hpux_asm_output_external): Add prototype.
430         * pa.c (get_plabel): Change argument to symbol_ref.  Call
431         maybe_get_identifier instead of get_identifier.
432         (pa_hpux_asm_output_external, pa_hpux_file_end): New functions.
433         (struct deferred_plabel): Replace name field with symbol field.
434         (TARGET_ASM_FILE_END): Define as pa_hpux_file_end if
435         ASM_OUTPUT_EXTERNAL_REAL is defined.
436         (output_global_address): Use output_addr_const for output of all
437         symbol_refs.
438         (output_deferred_plabels): Use symbol_ref instead of name for address
439         output.
440         * pa.h (SYMBOL_FLAG_REFERENCED, SYMBOL_REF_REFERENCED_P,
441         ASM_OUTPUT_SYMBOL_REF): New macros.
442         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Use assemble_name_raw.  Update
443         comment.
444         (ASM_WEAKEN_LABEL): Use targetm.asm_out.globalize_label to globalize
445         label.
446
447 2005-03-05  Joseph S. Myers  <joseph@codesourcery.com>
448
449         * config.gcc (hppa*64*-*-hpux11*): Use pa/pa-hpux1111.h for
450         *-*-hpux11.[1-9]*, not just for *-*-hpux11.11.
451
452 2005-03-04  Jeff Law  <law@redhat.com>
453
454         * basic-block.h (rediscover_loops_after_threading): Declare.
455         * tree-ssa-dom.c: Include cfgloop.h.
456         (tree_ssa_dominator_optimize): Discover loops and some basic
457         properties.  Remove forwarder blocks recreated by loop header
458         canonicalization.  Also mark backedges in the CFG.
459         * tree-ssa-threadupdate.c: Include cfgloop.h
460         (rediscover_loops_after_threading): Define.
461         (struct local_info): New field, JUMP_THREADED.
462         (prune_undesirable_thread_requests): New function.
463         (redirect_edges): Clear EDGE_ABNORMAL.  If edges were threaded
464         then record that fact for the callers of redirct_edges.
465         (thread_block): If BB has incoming backedges, then call
466         prune_undesirable_thraed_requests.    Note when we are
467         going to have to rediscover loop information.  Return a
468         boolean indicating if any jumps were threaded.
469         (thread_through_all_blocks): Bubble up boolean indicating
470         if any jumps were threaded.
471         * Makefile.in (tree-ssa-dom.o): Depend on cfgloop.h
472         (tree-ssa-threadupdate.o): Similarly.
473
474 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
475
476         * fold-const.c (fold_ternary): Unroll the "for" loop to
477         extract operands.  
478
479 2005-03-04  Andrew Haley  <aph@redhat.com>
480
481         * unwind-dw2-fde-glibc.c (struct
482         unw_eh_callback_data.check_cache): New field.
483         (frame_hdr_cache): New.
484         (_Unwind_IteratePhdrCallback): Add ext_dl_phdr_info.
485         Cache frame header info.
486
487 2005-03-04  Richard Sandiford  <rsandifo@redhat.com>
488
489         * rtl.h (copy_rtx_ptr_loc, print_rtx_ptr_loc, join_c_conditions)
490         (print_c_condition): Declare.
491         * read-rtl.c (ptr_loc): New structure.
492         (ptr_locs, ptr_loc_obstack, joined_conditions)
493         (joined_conditions_obstack): New variables.
494         (leading_ptr_hash, leading_ptr_eq_p, set_rtx_ptr_loc)
495         (get_rtx_ptr_loc, copy_rtx_ptr_loc, print_rtx_ptr_loc)
496         (join_c_conditions, print_c_condition): New functions.
497         (apply_macro_to_string): Associate the new string with the same
498         source location as the old one.
499         (add_condition_to_string): Use join_c_conditions.
500         (read_string): Use set_rtx_ptr_loc to record a filename and line
501         number for the string.
502         (read_rtx): Initialize the new variables above.
503         * genattrtab.c (write_test_expr, write_attr_value): Use
504         print_c_condition.
505         * genconditions.c (write_header): Don't define MAYBE_EVAL.  Move its
506         comment above the GCC_VERSION check.
507         (write_one_condition): Use print_rtx_ptr_loc and print_c_condition.
508         Inline the definition of MAYBE_EVAL.
509         * genemit.c (gen_expand, gen_split): Use print_rtx_ptr_loc.
510         * genoutput.c (process_template): Likewise.
511         * genpreds.c (write_predicate_subfunction): Likewise.
512         (write_predicate_expr): Use print_c_condition.
513         * genrecog.c (write_cond): Likewise.
514         * gensupport.c (process_rtx): Use join_c_conditions to join the
515         conditions of a define_insn_and_split.  Record a source location
516         for the string after the "&&".
517         (alter_test_for_insn): Use join_c_conditions.
518
519 2005-03-04  Andrew Pinski  <pinskia@physics.uc.edu>
520
521         Revert for now:
522         2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
523         PR tree-optimization/15784
524         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
525         and -1 - A to ~A.
526
527 2005-03-04  Ben Elliston  <bje@au.ibm.com>
528
529         * gcc.c (option_map): Add --coverage.
530         (LINK_COMMAND_SPEC): Pass -lgcov for `coverage'.
531         (cc1_options): Pass -fprofile-arcs -ftest-coverage for `coverage'.
532         * config/darwin.h: Pass -lgcov for `coverage'.
533         * doc/invoke.texi (Debugging Options): Document --coverage.
534
535 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
536
537         * gcse.c (bypass_block): Use find_edge wherever possible.
538
539 2005-03-03  Daniel Berlin <dberlin@dbrelin.org>
540
541         Fix PR debug/20253
542         
543         * c-opts.c (c_common_parse_file): Call start_source_file
544         and end_source_file at the approriate times.
545
546         * dwarf2out.c (dwarf2out_finish): Don't auto-end
547         the main file, it will be done for us now.
548         
549 2005-03-04  Kazu Hirata  <kazu@cs.umass.edu>
550
551         * fold-const.c (fold_ternary): New.
552         (fold): Call fold_ternary on ternary expressions.  Remove
553         handling of ternary expressions.
554
555 2005-03-03  James A. Morrison  <phython@gcc.gnu.org>
556
557         PR tree-optimization/15784
558         * fold-const.c (fold): Fold ~A + 1 to -1.  Fold -A - 1
559         and -1 - A to ~A.
560
561 2005-03-03  David Edelsohn  <edelsohn@gnu.org>
562
563         * config/rs6000/predicates.md (branch_comparison_operator):
564         Convert from C block to conditional format.
565
566 2005-03-03  Jan Hubicka  <jh@suse.cz>
567
568         * tree-dfa.c (add_referenced_var): Don't walk initializer of external
569         and non-constant public variables.
570
571 2005-03-03  Kazu Hirata  <kazu@cs.umass.edu>
572
573         * tree-cfg.c (stmt_starts_bb_p): Clean up by replacing code
574         with LABEL_EXPR.
575
576         * cfgexpand.c (construct_exit_block): Use EDGE_PRED instead of
577         EDGE_I.
578
579         * tree-phinodes.c (remove_phi_node): Clean up by factoring out
580         calls to release_ssa_name and release_phi_node.
581
582         * fold-const.c (fold): Remove handling of unary expressions.
583
584         * fold-const.c (fold_unary): Avoid directly using the original
585         expression t as much as possible.
586
587 2005-03-03  Roger Sayle  <roger@eyesopen.com>
588             Andrew Pinski  <pinskia@physics.uc.edu>
589
590         * jump.c (redirect_exp_1): If nlabel is a NULL pointer create a
591         RETURN rtx, and not a LABEL_REF containing a NULL pointer.
592
593 2005-03-03  Hans-Peter Nilsson  <hp@axis.com>
594
595         Describe special registers SRP and MOF as allocatable registers.
596         * config/cris/cris.c (cris_md_asm_clobbers): New function.
597         (TARGET_MD_ASM_CLOBBERS): Define to cris_md_asm_clobbers.
598         (cris_conditional_register_usage): Enable CRIS_MOF_REGNUM if
599         TARGET_HAS_MUL_INSNS.
600         (cris_print_operand) <case 'd'>: New case.
601         <case REG>: Allow CRIS_MOF_REGNUM and CRIS_SRP_REGNUM.
602         * config/cris/cris.h (CRIS_PC_REGNUM, CRIS_SRP_REGNUM): Don't
603         define.
604         (FIRST_PSEUDO_REGISTER, FIXED_REGISTERS, CALL_USED_REGISTERS)
605         (REG_ALLOC_ORDER): Update for MOF.
606         (enum reg_class): New members MOF_REGS, GENERAL_REGS and
607         SPECIAL_REGS.
608         (GENERAL_REGS): No longer a define of ALL_REGS.
609         (REGNO_REG_CLASS, REG_CLASS_CONTENTS, REG_CLASS_NAMES)
610         (PREFERRED_RELOAD_CLASS, REGISTER_NAMES, DBX_REGISTER_NUMBER):
611         Adjust accordingly.
612         (CRIS_SPECIAL_REGS_CONTENTS): New macro.
613         (REG_CLASS_FROM_LETTER): Allocate 'h' and 'x'.
614         (SECONDARY_RELOAD_CLASS): Define.
615         (STACK_POINTER_REGNUM): Define as CRIS_SP_REGNUM.
616         (FRAME_POINTER_REGNUM): Define as CRIS_FP_REGNUM.
617         (ARG_POINTER_REGNUM): Define as CRIS_AP_REGNUM.
618         (STATIC_CHAIN_REGNUM): Define as CRIS_STATIC_CHAIN_REGNUM.
619         (REGISTER_MOVE_COST): Define.
620         (PIC_OFFSET_TABLE_REGNUM): Define in terms of CRIS_GOT_REGNUM.
621         * config/cris/cris.md (CRIS_GOT_REGNUM, CRIS_STATIC_CHAIN_REGNUM)
622         (CRIS_FP_REGNUM, CRIS_SP_REGNUM, CRIS_SRP_REGNUM, CRIS_AP_REGNUM)
623         (CRIS_MOF_REGNUM): New define_constants.
624         ("*movsi_internal", "movhi", "movqi", "movsf"): Add alternatives for
625         special registers.
626         ("reload_inhi", "reload_outhi", "reload_inqi", "reload_outqi"):
627         New patterns.
628         ("umulhisi3", "umulqihi3", "mulsi3", "mulqihi3", "mulhisi3")
629         ("mulsidi3", "umulsidi3", "smulsi3_highpart", "umulsi3_highpart"):
630         Adjust for MOF being properly described as a register.
631         (indir_to_reg_split): Name this split.  Conditionalize on the
632         destination register being a general register.
633         (movei): Conditionalize on on operands 0 and 1 having the same
634         register class.
635
636 2005-03-03  Alan Modra  <amodra@bigpond.net.au>
637
638         PR target/20277
639         * config/rs6000/rs6000.c (rs6000_override_options): Don't allow
640         -mcpu to override any other explicitly given flags.
641
642 2005-03-02  J"orn Rennecke <joern.rennecke@st.com>
643
644         * recog.c (verify_changes, confirm_change_group): New functions,
645         broken out of apply_change_group.
646         (apply_change_group): Use them.
647         * recog.h (verify_change, confirm_change_group): Declare.
648         * rtl.h (redirect_jump_2): Declare.
649         * jump.c (redirect_exp, invert_exp): Delete.
650         (invert_exp_1): Take second parameter.  Return value.  Changed caller.
651         (redirect_jump_2): New function, broken out of redirect_jump.
652         (redirect_jump): Use redirect_jump_1 and redirect_jump_2.
653         (invert_jump): Use invert_jump_1 and redirect_jump_2.
654         * ifcvt.c (dead_or_predicable): Use redirect_jump_2.
655
656 2005-03-02  Geoffrey Keating  <geoffk@apple.com>
657
658         * varasm.c (named_section): Use xstrdup rather than doing it by
659         hand.
660
661         * config/darwin8.h (LIB_SPEC): Switch -lmx and -lSystem.
662
663 2005-03-02  Devang Patel  <dpatel@apple.com>
664         
665         Undo PR tree-optimization/18815 fix.
666         
667 2005-03-02  Devang Patel  <dpatel@apple.com>
668
669         PR tree-optimization/18815
670         * tree-if-conv.c (combine_blocks): Adjust loop header edges for
671         loops with zero exit edges.
672         
673 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
674
675         * cfg.c (connect_src, connect_dest, disconnect_src,
676         disconnct_dest): New.
677         (unchecked_make_edge, remove_edge, redirect_edge_succ,
678         redirect_edge_pred): Use the new functions.
679
680         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
681         free_dominance_info only when needed.
682
683 2005-03-02  David Edelsohn  <edelsohn@gnu.org>
684
685         PR target/20276
686         * config/rs6000/predicates.md (reg_or_cint64_operand): Fix typo.
687         (reg_or_sub_cint64_operand): Same.
688
689 2005-03-02  Jeff Law  <law@redhat.com>
690
691         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Fix setting of
692         CFG_ALTERED in the main DOM iteration loop.
693
694 2005-03-02  Mark Mitchell  <mark@codesourcery.com>
695
696         PR c++/19916
697         * varasm.c (initializer_constant_valid_p): Allow conversions
698         between OFFSET_TYPEs.  Tidy.
699
700 2005-03-02  Hans-Peter Nilsson  <hp@axis.com>
701
702         * config/cris/cris.md ("return"): Remove epilogue delay list
703         sanity check.
704
705 2005-03-02  Daniel Jacobowitz  <dan@codesourcery.com>
706
707         * config/arm/linux-elf.h (ARM_FUNCTION_PROFILER): Do not use (PLT)
708         for Thumb.
709         * config/arm/netbsd-elf.h (ARM_FUNCTION_PROFILER): Likewise.
710
711 2005-03-02  Kazu Hirata  <kazu@cs.umass.edu>
712
713         * cfgloop.h, cfgloopanal.c, cfgloopmanip.c, conflict.c,
714         loop-init.c, loop-unroll.c, print-tree.c, reg-notes.def,
715         config/m68k/m68k.c, config/mips/mips.h,
716         config/rs6000/rs6000-protos.h, doc/contrib.texi,
717         doc/include/gcc-common.texi: Update copyright.
718
719         PR middle-end/18029 and PR middle-end/18030
720         * expr.c (optimize_bitfield_assignment_op): Add a special case
721         to handle BIT_IOR_EXPR and BIT_XOR_EXPR.
722
723         * fold-const.c (fold_unary): New.
724         (fold): Call fold_unary on unary expressions.
725
726 2005-03-02  Richard Guenther  <rguenth@gcc.gnu.org>
727
728         * cgraph.h (struct cgraph_edge): Add prev_caller and
729         prev_callee fields.
730         (cgraph_node_remove_callees): Export.
731         * cgraph.c (cgraph_create_edge): Initialize prev_caller
732         and prev_callee.
733         (cgraph_edge_remove_callee): New function.
734         (cgraph_edge_remove_caller): Likewise.
735         (cgraph_remove_edge): Use.
736         (cgraph_redirect_edge_callee): Likewise.
737         (cgraph_node_remove_callees): New function.
738         (cgraph_node_remove_callers): Likewise.
739         (cgraph_remove_node): Use.
740         * tree-optimize.c (tree_rest_of_compilation): Use
741         cgraph_node_remove_callees instead of manual loop.
742         * cgraphunit.c (cgraph_finalize_function): Likewise.
743         (cgraph_expand_function): Likewise.
744         (cgraph_remove_unreachable_nodes): Likewise.
745
746 2005-03-02  Joseph S. Myers  <joseph@codesourcery.com>
747
748         PR c/8927
749         * c-tree.h (undeclared_variable, build_external_ref): Add extra
750         argument.
751         * c-decl.c (undeclared_variable): Take location as argument.
752         * c-typeck.c (build_external_ref): Likewise.
753         * c-parser.c (c_parser_postfix_expression): Pass location of
754         identifier to build_external_ref.
755
756 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
757
758         * config/rs6000/rs6000.md (cceq splitter): Use operand mode, not
759         CCEQ mode for branch_positive_comparison_operator test.
760         * config/rs6000/predicates (branch_comparison_operator): Revert to
761         define_predicate.
762         (scc_comparison_operator): Same.
763         (branch_positive_comparison_operator): Same.
764
765 2005-03-01  Hans-Peter Nilsson  <hp@axis.com>
766
767         * config/cris/cris.c (cris_eligible_for_epilogue_delay)
768         (cris_delay_slots_for_epilogue): Remove.
769         (save_last): Move into cris_target_asm_function_epilogue.
770         (cris_target_asm_function_epilogue): Remove tests for file being
771         NULL.
772         * config/cris/cris-protos.h (cris_eligible_for_epilogue_delay)
773         (cris_delay_slots_for_epilogue): Remove prototypes.
774         * config/cris/cris.h (DELAY_SLOTS_FOR_EPILOGUE)
775         (ELIGIBLE_FOR_EPILOGUE_DELAY): Do not define.
776
777 2005-03-01  David Edelsohn  <edelsohn@gnu.org>
778
779         * config/rs6000/predicates.md (branch_comparison_operator): Change
780         to define_special_predicate.
781         (scc_comparison_operator): Same.
782         (branch_positive_comparison_operator): Same.
783
784 2005-03-01  Daniel Berlin <dberlin@dberlin.org>
785
786         * Makefile.in (tree-ssa-sink.o): New.
787         (OBJS-common): Add tree-ssa-sink.o.
788         * common.opt: Add -ftree-sink
789         * opts.c (decode_options): flag_tree_sink is set at O1 or higher.
790         * timevar.def (TV_TREE_SINK): new timevar.
791         * tree-flow.h (is_hidden_global_store): Prototype.
792         * tree-optimize.c (init_tree_optimization_passes): Add
793         pass_sink_code.
794         * tree-pass.h (pass_sink_code): New.
795         * tree-ssa-dce.c (mark_stmt_if_obviously_necessary): Move checking
796         for non-obvious global store store to is_hidden_global_store, and
797         call that new function.
798         * tree-ssa-sink.c: New file.
799         * doc/invoke.texi: Document -fdump-tree-sink and -ftree-sink.
800         * doc/passes.texi: Document forward store motion.
801         * testsuite/gcc.dg/tree-ssa/ssa-sink-1.c: New test
802         * testsuite/gcc.dg/tree-ssa/ssa-sink-2.c: New test
803         * testsuite/gcc.dg/tree-ssa/ssa-sink-3.c: New test
804         * testsuite/gcc.dg/tree-ssa/ssa-sink-4.c: New test
805
806 2005-03-01  Per Bothner  <per@bothner.com>
807
808         * diagnostic.c (diagnostic_build_prefix): If USE_MAPPED_LOCATION
809         and we have a non-zero column-number, add it to the message.
810         Also factor out the diagnostic_kind_text.
811
812 2005-03-01  Zdenek Dvorak  <dvorakz@suse.cz>
813
814         * cfgloop.c (flow_loop_entry_edges_find, flow_loop_exit_edges_find,
815         flow_loop_pre_header_scan, flow_loop_pre_header_find,
816         flow_loop_scan): Removed.
817         (flow_loop_dump): Do not dump removed fields.
818         (flow_loop_free): Do not free removed fields.
819         (flow_loops_find): Flags argument removed.  Do not call flow_loop_scan.
820         (loop_exit_edge_p): New function.
821         * cfgloop.h (struct loop): Removed fields pre_header, pre_header_edges,
822         num_pre_header_edges, entry_edges, num_entries, exit_edges,
823         num_exits, exits_doms.
824         (LOOP_TREE, LOOP_PRE_HEADER, LOOP_ENTRY_EDGES, LOOP_EXIT_EDGES,
825         LOOP_EDGES, LOOP_ALL): Removed.
826         (flow_loop_scan): Declaration removed.
827         (loop_exit_edge_p, mark_loop_exit_edges): Declare.
828         * cfgloopmanip.c (create_loop_notes): Do not pass flags to
829         flow_loops_find.
830         * ifcvt.c (mark_loop_exit_edges): Moved to cfgloopanal.c.
831         (if_convert): Call flow_loops_find and flow_loops_free
832         when calling mark_loop_exit_edges.
833         * cfgloopanal.c (mark_loop_exit_edges): Moved from
834         ifcvt.c.  Removed the flow_loops_find, flow_loops_free and
835         free_dominance_info calls.
836         * loop-init.c (flow_loops_find): Ditto.
837         * passes.c (rest_of_handle_branch_prob): Ditto.
838         * lambda-code.c (perfect_nestify): Do not call flow_loops_find.
839         * loop-unroll.c (analyze_insns_in_loop): Do not use
840         EDGE_LOOP_EXIT.
841         * predict.c (predict_loops): Do not call flow_loop_scan.
842         Use get_loop_exit_edges.
843         (tree_estimate_probability): Do not pass flags to flow_loops_find.
844         * tree-if-conv.c (bb_with_exit_edge_p): Take loop as argument.
845         Do not use EDGE_LOOP_EXIT.
846         (tree_if_convert_cond_expr, if_convertible_modify_expr_p): Pass loop
847         to bb_with_exit_edge_p.
848         (if_convertible_loop_p): Do not call flow_loop_scan.  Use
849         loop->single_exit.  Do not use EDGE_LOOP_EXIT.  Pass loop
850         to bb_with_exit_edge_p.
851         (combine_blocks): Pass loop to bb_with_exit_edge_p.  Do not use
852         EDGE_LOOP_EXIT.
853         * tree-loop-linear.c (linear_transform_loops): Do not call
854         flow_loop_scan.  Use loop->single_exit.
855         * tree-vect-analyze.c (vect_analyze_operations): Use loop->single_exit.
856         (vect_analyze_loop_form): Do not call flow_loop_scan.
857         * tree-vect-transform.c (vect_update_ivs_after_vectorizer): Use
858         loop->single_exit.
859         (vect_do_peeling_for_loop_bound): Use loop_preheader_edge and
860         loop->single_exit.
861         * tree-vectorizer.c (slpeel_update_phis_for_duplicate_loop,
862         slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
863         slpeel_tree_duplicate_loop_to_edge_cfg,
864         slpeel_verify_cfg_after_peeling, slpeel_tree_peel_loop_to_edge):
865         Use loop_preheader_edge and loop->single_exit.  Do not call
866         flow_loop_scan.
867
868 2005-03-01  Nick Clifton  <nickc@redhat.com>
869
870         * config/arm/arm.c (thumb_find_work_register): Check all of the
871         argument registers to see if they are free, and a couple of
872         special cases where the last argument register but can be proved
873         to be available during the function's prologue.
874         (print_multi_reg, arm_compute_save_reg0_reg12_mask,
875         output_return_instruction, emit_multi_reg_push, thumb_pushpop,
876         thumb_unexpanded_epilogue): Use unsigned long as the type for the
877         register bit-mask.
878         (thumb_compute_save_reg_mask): Likewise.  Also use
879         thumb_find_work_register() to ensure that there is agreement about
880         which work register is going to be used in the prologue.
881         (thumb_output_function_prologue): Use unsigned long as the type
882         for the register bit-mask.  Also delay pushing the link register if
883         other high registers are going to be pushed.
884         (thumb_compute_save_reg_mask, emit_multi_reg_push,
885         print_multi-reg, number_of_first_bit_set, thumb_pushpop): Remove
886         redundant prototypes.
887
888 2005-02-28  John David Anglin  <dave.anglin#nrc-cnrc.gc.ca>
889
890         PR target/19819
891         * pa.h (GO_IF_LEGITIMATE_ADDRESS): Allow allow hard registers during
892         and after reload in REG+REG indexed addresses without REG_POINTER
893         set in the base and not set in the index.
894
895 2005-02-28  Kaz Kojima  <kkojima@gcc.gnu.org>
896
897         * config/sh/linux.h (MD_EXEC_PREFIX, MD_STARTFILE_PREFIX):
898         Don't undefine here.
899         (HANDLE_PRAGMA_PACK_PUSH_POP): Delete.
900         (NO_IMPLICIT_EXTERN_C, CPLUSPLUS_CPP_SPEC): Likewise.
901         (TARGET_OS_CPP_BUILTINS): Use LINUX_TARGET_OS_CPP_BUILTINS.
902         (LIB_SPEC, LINK_EH_SPEC, STARTFILE_SPEC, ENDFILE_SPEC,
903         LINK_GCC_C_SEQUENCE_SPEC, USE_LD_AS_NEEDED, TARGET_C99_FUNCTIONS):
904         Delete.
905         * config.gcc (sh*-*-linux*): Use config/linux.h.
906
907 2005-02-28  Dale Johannesen  <dalej@apple.com>
908             Stan Shebs  <shebs@apple.com>
909
910         Rewrite of 64-bit Darwin structure-by-value pass/return.
911         * config/rs6000/rs6000.h (CUMULATIVE_ARGS): New fields
912         intoffset, use_stack, named.
913         * config/rs6000/rs6000.c (rs6000_darwin64_function_arg):  Remove.
914         (rs6000_darwin64_record_arg_advance_flush):  New.
915         (rs6000_darwin64_record_arg_advance_recurse): New.
916         (rs6000_darwin64_record_arg_flush):  New.
917         (rs6000_darwin64_record_arg_recurse):  New.
918         (rs6000_darwin64_record_arg):  New.
919         (rs6000_return_in_memory):  Remove AGGREGATE_TYPE_P check.
920         (function_arg_boundary):  Handle 128-bit aligned structs.
921         (function_arg_advance):  Rewrite darwin64 struct handling.
922         (function_arg):  Call rs6000_darwin64_record_arg.
923         (function_arg_partial_nregs):  Handle darwin64 structs.
924         (rs6000_darwin64_function_value):  Remove.
925         (rs6000_function_value):  Call rs6000_darwin64_record_arg.
926
927 2005-02-28  Roger Sayle  <roger@eyesopen.com>
928
929         PR tree-optimization/20216
930         * tree-chrec.c (tree_fold_factorial): Delete.
931         (tree_fold_binomial): Change argument list to take a return type
932         and change the type of K to unsigned int.  Rewrite to avoid explicit
933         evaluation of factorials, and (recursively) calling fold to perform
934         compile-time arithmetic.  Return NULL on (internal) overflow.
935         (chrec_evaluate): Change type of K to an unsigned int.  Avoid
936         calling tree_fold_binomial unnecessarily.  Return chrec_dont_know
937         if any intermediate calculation overflows.
938         (chrec_apply): Update call to chrec_evaluate.
939
940 2005-02-28  James E Wilson  <wilson@specifixinc.com>
941
942         * config/mips/mips.h (NO_PROFILE_COUNTERS): Define.
943
944 2005-02-28  Joseph S. Myers  <joseph@codesourcery.com>
945
946         PR c/20245
947         * c-parser.c (c_parser_compound_statement): Return error_mark_node
948         instead of NULL_TREE on error.
949
950 2005-02-28  David Edelsohn  <edelsohn@gnu.org>
951
952         * config/rs6000/rs6000.c (EASY_VECTOR_15): Remove.
953         (EASY_VECTOR_15_ADD_SELF): Remove.
954         (num_insns_constant_wide): Not static.
955         (validate_condition_mode): Not static.
956         (toc_relative_expr_p): Not static.
957         (legitimate_indirect_address_p): Not static.
958         (macho_lo_sum_memory_operand): Not static.
959         (invalid_e500_subreg): Not static.
960         (easy_vector_same): Not static.
961         (easy_vector_splat_const): Not static.
962         (RS6000_SYMBOL_REF_TLS_P): Remove.
963         (any_operand): Delete.
964         (any_parallel_operand): Delete.
965         (count_register_operand): Delete.
966         (altivec_register_operand): Delete.
967         (xer_operand): Delete.
968         (s8bit_cint_operand): Delete.
969         (short_cint_operand): Delete.
970         (u_short_cint_operand): Delete.
971         (non_short_cint_operand): Delete.
972         (exact_log2_cint_operand): Delete.
973         (gpc_reg_operand): Delete.
974         (cc_reg_operand): Delete.
975         (cc_reg_not_cr0_operand): Delete.
976         (reg_or_short_operand): Delete.
977         (reg_or_neg_short_operand): Delete.
978         (reg_or_aligned_short_operand): Delete.
979         (reg_or_u_short_operand): Delete.
980         (reg_or_cint_operand): Delete.
981         (reg_or_arith_cint_operand): Delete.
982         (reg_or_add_cint64_operand): Delete.
983         (reg_or_sub_cint64_operand): Delete.
984         (reg_or_logical_cint_operand): Delete.
985         (got_operand): Delete.
986         (got_no_const_operand): Delete.
987         (easy_fp_constant): Delete.
988         (easy_vector_constant): Delete.
989         (easy_vector_constant_add_self): Delete.
990         (zero_constant): Delete.
991         (zero_fp_constant): Delete.
992         (volatile_mem_operand): Delete.
993         (offsettable_mem_operand): Delete.
994         (mem_or_easy_const_operand): Delete.
995         (add_operand): Delete.
996         (non_add_cint_operand): Delete.
997         (logical_operand): Delete.
998         (non_logical_cint_operand): Delete.
999         (mask_operand): Delete.
1000         (mask_operand_wrap): Delete.
1001         (mask64_operand): Delete.
1002         (mask64_2_operand): Delete.
1003         (and64_operand): Delete.
1004         (and64_2_operand): Delete.
1005         (and_operand): Delete.
1006         (reg_or_mem_operand): Delete.
1007         (lwa_operand): Delete.
1008         (symbol_ref_operand): Delete.
1009         (call_operand): Delete.
1010         (current_file_function_operand): Delete.
1011         (input_operand): Delete.
1012         (rs6000_nonimmediate_operand): Delete.
1013         (rs6000_tls_symbol_ref): Delete.
1014         (save_world_operation): Delete.
1015         (restore_world_operation): Delete.
1016         (load_multiple_operation): Delete.
1017         (store_multiple_operation): Delete.
1018         (vrsave_operation): Delete.
1019         (mfcr_operation): Delete.
1020         (mtcrf_operation): Delete.
1021         (lmw_operation): Delete.
1022         (stmw_operation): Delete.
1023         (branch_comparison_operator): Delete.
1024         (branch_positive_comparison_operator): Delete.
1025         (scc_comparison_operator): Delete.
1026         (trap_comparison_operator): Delete.
1027         (boolean_operator): Delete.
1028         (boolean_or_operator): Delete.
1029         (min_max_operator): Delete.
1030         * config/rs6000/rs6000.h (RS6000_SYMBOL_REF_TLS_P): Move to here.
1031         (EASY_VECTOR_15): Moved to here.
1032         (EASY_VECTOR_15_ADD_SELF): Move to here.
1033         (PREDICATE_CODES): Delete.
1034         * config/rs6000/rs6000-protos.h: Delete predicate functions.
1035         Declare functions no longer static.
1036         * config/rs6000/predicates.md: New.
1037         * config/rs6000/rs6000.md: Include predicates.md
1038
1039 2005-02-28  Kazu Hirata  <kazu@cs.umass.edu>
1040
1041         * calls.c (emit_call_1): Don't use  REG_ALWAYS_RETURN.
1042         (emit_library_call_value_1): Don't use LCT_ALWAYS_RETURN and
1043         REG_ALWAYS_RETURN.
1044         * cfgrtl.c (need_fake_edge_p): Likewise.
1045         * combine.c (distribute_notes): Likewise.
1046         * emit-rtl.c (try_split): Likewise.
1047         * recog.c (peephole2_opimize): Likewise.
1048         * reg-notes.def (ALWAYS_RETURN): Remove.
1049         * rtl.h (LCT_ALWAYS_RETURN): Remove.
1050         * tree-cfg.c (need_fake_edge_p): Don't use ECF_ALWAYS_RETURN.
1051         * tree.h (ECF_ALWAYS_RETURN): Remove.
1052
1053 2005-02-28  Roger Sayle  <roger@eyesopen.com>
1054
1055         PR middle-end/19874
1056         * tree-ssa.c (tree_ssa_useless_type_conversion_1): A conversion
1057         between different machine modes is never a "useless" conversion.
1058
1059 2005-02-28  Geert Bosch  <bosch@gnat.com>
1060
1061         PR ada/15977
1062         * doc/contrib.texi: List contributors for Ada front end
1063
1064 2005-02-28 Paolo Bonzini <bonzini@gnu.org>
1065
1066         * simplify-rtx.c (simplify_unary_operation_1,
1067         simplify_const_unary_operation): New, extracted from...
1068         (simplify_unary_operation): ... this one.
1069         (simplify_binary_operation_1,
1070         simplify_const_binary_operation): New, extracted from...
1071         (simplify_binary_operation): ... this one.
1072         * rtl.h (simplify_const_unary_operation,
1073         simplify_const_binary_operation): Add prototypes.
1074
1075 2005-02-28  Julian Brown  <julian@codesourcery.com>
1076
1077         * config/elfos.h: Revert my patch from 2005-02-25 since it broke
1078         building libjava and caused PR regression/20228.
1079
1080 2005-02-28  Paolo Bonzini  <bonzini@gnu.org>
1081
1082         PR bootstrap/17383
1083         * Makefile.in (host_subdir): New.
1084         (build_objdir): New.  Replace ../$(build_subdir) with it throughout.
1085         * configure: Regenerate.
1086
1087 2005-02-27  Zack Weinberg  <zack@codesourcery.com>
1088
1089         * config/alpha/t-osf4, config/arm/t-netbsd, config/ia64/t-hpux
1090         * config/pa/t-hpux-shlib (SHLIB_INSTALL): Create the
1091         installation directory first.
1092
1093 2005-02-28  Hans-Peter Nilsson  <hp@axis.com>
1094
1095         PR target/19065.
1096         * config/cris/cris.h (EXTRA_CONSTRAINT_Q): Accept only (mem (reg)),
1097         not including (reg). Do not check for reg being CRIS_PC_REGNUM.
1098         (EXTRA_MEMORY_CONSTRAINT): Define as 'Q'.
1099         * config/cris/cris.md: Tweak comments referring to Q.
1100         ("cmpsi", "cmphi", "cmpqi", "*movsi_internal", "movhi")
1101         ("movstricthi", "movqi", "movstrictqi", "movsf", "addsi3")
1102         ("addhi3", "addqi3", "subsi3", "subhi3", "subqi3")
1103         ("*expanded_andsi", "*expanded_andhi", "*andhi_lowpart", "andqi3")
1104         ("*andqi_lowpart", "iorsi3", "iorhi3", "iorqi3", "uminsi3"):
1105         Insert spaces in constraints to align alternatives vertically for
1106         readability.
1107         ("cmphi"): Ditto.  Add separate alternative for operand 0 "r",
1108         operand 1: "M".
1109
1110 2005-02-27  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1111
1112         PR rtl-optimization/17728
1113         * pa.md (mulsi3, divsi3, udivsi3, modsi3): Change predicate for
1114         operand 0 from general_operand to move_dest_operand.
1115
1116 2005-02-26  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1117
1118         * pa/elf.h, pa/som.h (ASM_OUTPUT_EXTERNAL): Use assemble_name_raw
1119         instead of trying to save and restore TREE_SYMBOL_REFERENCED.
1120         * pa/pa64-hpux.h (ASM_OUTPUT_TYPE_DIRECTIVE): Define.
1121         (ASM_OUTPUT_EXTERNAL): Don't save and restore TREE_SYMBOL_REFERENCED.
1122
1123 2005-02-26  Nathanael Nerode  <neroden@gcc.gnu.org>
1124
1125         * configure.ac: Rename cc_for_cross_gnattools to host_cc_for_libada.
1126         * configure: Regenerate.
1127         * libada-mk.in: Remove CC; rename
1128         cc_for_cross_gnattools / cc_set_by_configure to host_cc_for_libada.
1129
1130 2005-02-26  Andrew Pinski  <pinskia@physics.uc.edu>
1131
1132         PR tree-opt/20188
1133         * tree-ssa-alias.c (count_uses_and_derefs): If we have TREE_LIST
1134         for the lhs, also walk over the tree.  Likewise for rhs.
1135
1136 2005-02-26  Zdenek Dvorak  <dvorakz@suse.cz>
1137
1138         * tree-ssa-dom.c (simple_iv_increment_p): New function.
1139         (simplify_rhs_and_lookup_avail_expr, eliminate_redundant_computations):
1140         Do not propagate value of iv before increment over the increment.
1141
1142 2005-02-25  Joseph S. Myers  <joseph@codesourcery.com>
1143
1144         * c-parser.c: New file.
1145         * c-parse.in: Remove.
1146         * Makefile.in (c-parse.o-warn, c-parse.o, c-parse.c, c-parse.y):
1147         Remove.
1148         (c-parser.o): Add dependencies.
1149         (C_AND_OBJC_OBJC, C_OBJS, gcc.srcextra, GTFILES, distclean,
1150         maintainer-clean, TAGS): Update.
1151         * c-config-lang.in (gtfiles): Update.
1152         * gengtype-lex.l: Don't handle "@@".
1153         * stub-objc.c (objc_get_class_ivars, objc_build_throw_stmt,
1154         objc_build_synchronized, objc_begin_try_stmt,
1155         objc_begin_catch_clause, objc_finish_catch_clause,
1156         objc_build_finally_clause, objc_finish_try_stmt): New.
1157         * c-tree.h (struct c_declspecs): Add declspecs_seen_p and
1158         type_seen_p.
1159         (c_parse_init): Update comment.
1160         * c-decl.c (c_init_decl_processing): Update comment.
1161         (build_null_declspecs, declspecs_add_qual, declspecs_add_type,
1162         declspecs_add_scspec, declspecs_add_attrs): Initialize and update
1163         new c_declspecs members.
1164
1165 2005-02-25  Julian Brown  <julian@codesourcery.com>
1166
1167         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK
1168         from being used for symbols with vague linkage when
1169         HAVE_GAS_COMDAT_GROUP is true.
1170
1171 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1172
1173         * doc/include/gcc-common.texi (version-GCC): Update to 4.1.
1174
1175 2005-02-25  Steve Ellcey  <sje@cup.hp.com>
1176
1177         PR target/19930
1178         * doc/tm.texi (LIBGCC2_LONG_DOUBLE_TYPE_SIZE): Document.
1179         (LIBGCC2_HAS_DF_MODE): New.
1180         (LIBGCC2_HAS_XF_MODE): New.
1181         (LIBGCC2_HAS_TF_MODE): New.
1182         * libgcc2.h (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1183         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1184         * libgcc2.c (LIBGCC2_HAS_XF_MODE): New name for HAVE_XFMODE.
1185         (LIBGCC2_HAS_TF_MODE): New name for HAVE_TFMODE.
1186         (LIBGCC2_HAS_DF_MODE): New name for HAVE_DFMODE.
1187         * config/ia64/t-ia64 (LIB1ASMFUNCS): Remove __compat
1188         and add _fixtfdi, _fixunstfdi, _floatditf
1189         * lib1funcs.asm: Remove L__compat. Add L_fixtfdi,
1190         L_fixunstfdi, L_floatditf.
1191         * config/ia64/hpux.h (LIBGCC2_HAS_XF_MODE): Define.
1192         (LIBGCC2_HAS_TF_MODE): Define.
1193
1194 2005-02-25  Diego Novillo  <dnovillo@redhat.com>
1195
1196         PR tree-optimization/20204
1197         * tree-into-ssa.c (insert_phi_nodes_for): Do not use
1198         REWRITE_THIS_STMT markers on PHI nodes.
1199         (rewrite_initialize_block): Likewise.
1200
1201 2005-02-25  Mark Mitchell  <mark@codesourcery.com>
1202
1203         * version.c (version_string): Update to 4.1.
1204
1205 2005-02-25  Paolo Carlini  <pcarlini@suse.de>
1206
1207         * doc/extend.texi (5.24 Declaring Attributes of Functions)<noreturn>:
1208         Clarify that the alternative way doesn't work in GNU C++.
1209
1210 2005-02-25  Zdenek Dvorak  <dvorakz@suse.cz>
1211
1212         PR tree-optimization/19937
1213         * tree-ssa-loop-ivopts.c (rewrite_use_compare): Cast the final value
1214         to the type of the induction variable.
1215
1216 2005-02-25  Kaz Kojima  <kkojima@gcc.gnu.org>
1217
1218         PR rtl-optimization/20117
1219         * bb-reorder.c (duplicate_computed_gotos): Don't duplicate
1220         the block including noncopyable insn.
1221
1222 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1223
1224         * cse.c (delete_trivially_dead_insns): Speed up by minimizing
1225         calls to find_reg_note.
1226
1227 2005-02-24  Richard Henderson  <rth@redhat.com>
1228
1229         PR tree-opt/20127
1230         * tree-sra.c (instantiate_element): Copy TREE_THIS_VOLATILE from
1231         the type.
1232
1233 2005-02-24  Fariborz Jahanian <fjahanian@apple.com>
1234
1235         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Check for
1236         vector types if to use base reg for misaligned non-word ld/std.
1237
1238 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1239
1240         PR target/14619
1241         * config/cris/cris.c (cris_target_asm_function_prologue): Create
1242         dwarf2 label manually and put it after, not before the prologue.
1243
1244 2005-02-24  David Edelsohn  <edelsohn@gnu.org>
1245
1246         PR target/19019
1247         * reload.c (operands_match_p): Only increment register number for
1248         SCALAR_INT_MODE_P modes in multiple hard registers.
1249
1250         * config/rs6000/rs6000.md (trunctfdf2): Remove register constraints.
1251         Fix formatting.
1252
1253 2005-02-24  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1254
1255         * ChangeLog.5: Fix log message typo(s).
1256         * ChangeLog.7: Likewise.
1257         * ChangeLog.tree-ssa: Likewise.
1258         * cfgexpand.c: Fix comment typo(s).
1259         * conflict.c: Likewise.
1260         * defaults.h: Likewise.
1261         * dwarf2out.c: Likewise.
1262         * gcse.c: Likewise.
1263         * ggc-page.c: Likewise.
1264         * tree-eh.c: Likewise.
1265         * tree-ssa-dom.c: Likewise.
1266
1267 2005-02-24  Jakub Jelinek  <jakub@redhat.com>
1268
1269         PR target/19019
1270         * mklibgcc.in: Pass -DSHARED when compiling all *_s${objext} objects.
1271         * config/rs6000/darwin-ldouble.c: Only use the .symver directives
1272         if SHARED is defined.
1273
1274         PR target/20196
1275         * config/rs6000/rs6000.md (LTU, GTU sCC splitters): Add earlyclobber,
1276         allow splitting only if operands 0 and 3 don't overlap.
1277
1278 2005-02-24  Richard Henderson  <rth@redhat.com>
1279
1280         PR middle-end/19953
1281         * builtins.c (fold_builtin_complex_mul, fold_builtin_complex_div): New.
1282         (fold_builtin_1): Call them.
1283         * fold-const.c (fold_complex_mult_parts): Split out from ...
1284         (fold_complex_mult): ... here.  Fix typo in both imaginary case.
1285         (fold_complex_div_parts, fold_complex_div): New.
1286         (fold): Use them.
1287         * tree.h (fold_complex_mult_parts, fold_complex_div_parts): Declare.
1288
1289 2005-02-24  Richard Kenner  <kenner@vlsi1.ultra.nyu.edu>
1290
1291         * tree-ssa-ccp.c (visit_assignment): Verify that result of
1292         VIEW_CONVERT_EXPR is_gimple_min_invariant.
1293
1294         * print-tree.c (print_node_brief): Print LABEL_DECL_UID.
1295         (print_node): Likewise.
1296         Print TYPE_SIZES_GIMPLIFIED.
1297
1298 2005-02-24  Hans-Peter Nilsson  <hp@axis.com>
1299
1300         * config/cris/cris.md ("umulhisi3", "umulqihi3", "mulsi3")
1301         ("mulqihi3", "mulhisi3", "mulsidi3", "umulsidi3"): Mark input
1302         operands as commutative in constraints.
1303
1304 2005-02-24  Diego Novillo  <dnovillo@redhat.com>
1305
1306         * tree-into-ssa.c: Re-organize internal functions.
1307
1308 2005-02-24  Richard Henderson  <rth@redhat.com>
1309
1310         PR middle-end/18902
1311         * c-opts.c (c_common_post_options): Set flag_complex_method to 2
1312         for c99.
1313         * common.opt (fcx-limited-range): New.
1314         * opts.c (set_fast_math_flags): Set flag_cx_limited_range.
1315         * toplev.c (flag_complex_method): Initialize to 1.
1316         (process_options): Set flag_complex_method to 0 if
1317         flag_cx_limited_range.
1318         * doc/invoke.texi (-fcx-limited-range): New.
1319
1320 2005-02-24  Kazu Hirata  <kazu@cs.umass.edu>
1321
1322         * cse.c (delete_trivially_dead_insns): Speed up by using
1323         NEXT_INSN and PREV_INSN directly instead of next_real_insn and
1324         prev_real_insn.
1325
1326 2005-02-24  Andrea Tarani  <andrea.tarani@gilbarco.com>
1327
1328         * config/m68k/m68k.c (m68k_save_reg): Also save A5 for non-leaf
1329         functions when -mid-shared-library is being used.
1330
1331 2005-02-23  Daniel Jacobowitz  <dan@codesourcery.com>
1332
1333         * doc/tm.texi (LINK_LIBGCC_SPECIAL): Remove.
1334         (LINK_LIBGCC_SPECIAL_1): Don't mention it.
1335         * gcc.c: Don't check for LINK_LIBGCC_SPECIAL.
1336         * system.h: Poison LINK_LIBGCC_SPECIAL.
1337
1338 2005-02-23  James E Wilson  <wilson@specifixinc.com>
1339
1340         * gengtype.c (note_insn_name): Make 1 element larger.
1341
1342 2005-02-23  Roger Sayle  <roger@eyesopen.com>
1343
1344         PR target/20018
1345         PR rtl-optimization/20097
1346         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
1347         BImode SUBREGs of SImode registers which confuse the ia64 backend.
1348
1349 2005-02-23  David Edelsohn  <edelsohn@gnu.org>
1350
1351         * t-aix43 (SHLIB_INSTALL): Create directory for shared library.
1352         * t-aix52 (SHLIB_INSTALL): Same.
1353
1354 2005-02-23  Kazu Hirata  <kazu@cs.umass.edu>
1355
1356         * genpreds.c: Update copyright.
1357
1358 2005-02-23  Michael Beach  <michaelb@ieee.org>
1359
1360         PR target/20159
1361         * config/sparc/t-elf (startup files): Assemble with CPP.
1362
1363 2005-02-23  Paolo Bonzini  <bonzini@gnu.org>
1364
1365         * genpreds.c (mark_mode_tests): Handle non-VOIDmode match_operands.
1366         (write_predicate_expr): Likewise.
1367
1368 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1369
1370         PR tree-optimization/20100
1371         PR tree-optimization/20115
1372         * tree-optimize.c (init_tree_optimization_passes): Remove
1373         pass_maybe_create_global_var.
1374         * tree-pass.h (pass_maybe_create_global_var): Remove.
1375         * tree-ssa-alias.c (aliases_computed_p): Declare.
1376         (struct alias_info): Add field NUM_PURE_CONST_CALLS_FOUND.
1377         (count_calls_and_maybe_create_global_var): Remove.
1378         (pass_maybe_create_global_var): Remove.
1379         (init_alias_info): Do not declare aliases_computed_p.
1380         (maybe_create_global_var): If the function contains no
1381         call-clobbered variables and a mix of pure/const and regular
1382         function calls, create .GLOBAL_VAR.
1383         Mark all call-clobbered variables for renaming.
1384         (merge_pointed_to_info): Update comment.
1385         (add_pointed_to_var): Likewise.
1386         (is_escape_site): Likewise.
1387         Accept struct alias_info * instead of size_t *.
1388         Update all users.
1389         Update AI->NUM_CALLS_FOUND and AI->NUM_PURE_CONST_CALLS_FOUND
1390         as necessary.
1391         * tree-ssa-operands.c (get_call_expr_operands): If
1392         ALIASES_COMPUTED_P is false, do not add call-clobbering
1393         operands.
1394         * tree-ssa.c (init_tree_ssa): Set ALIASES_COMPUTED_P to false.
1395         (delete_tree_ssa): Likewise.
1396
1397 2005-02-22  James E Wilson  <wilson@specifixinc.com>
1398
1399         * toplev.c (backend_init): Don't call init_adjust_machine_modes here.
1400         (do_compile): Do call it here.
1401
1402 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1403
1404         PR rtl-optimization/20017.
1405         * passes.c (rest_of_handle_combine, rest_of_handle_cse,
1406         rest_of_handle_cse2, rest_of_handle_gcse): Call
1407         delete_dead_jumptables immediately before calling cleanup_cfg.
1408
1409 2005-02-22  Devang Patel  <dpatel@apple.com>
1410
1411         PR 19952
1412         * tree-if-conv.c (process_phi_nodes): Use bsi_after_labels and skip
1413         all labels
1414
1415 2005-02-22  David Edelsohn  <edelsohn@gnu.org>
1416
1417         * config/rs6000/aix.h (WINT_TYPE): Define.
1418
1419 2005-02-22  Stan Shebs  <shebs@apple.com>
1420
1421         * config/rs6000/rs6000.c (rs6000_override_options): Default to
1422         natural alignment for 64-bit Darwin.
1423         (rs6000_parse_alignment_option): Warn about uses of -malign-power
1424         on 64-bit Darwin.
1425         * doc/invoke.texi: Document this.
1426
1427 2005-02-22  DJ Delorie  <dj@redhat.com>
1428
1429         * c-common.c (c_common_type_for_mode): Pass the mode's precision
1430         to make_[un]signed_type, not the mode itself.
1431
1432 2005-02-22  Kazu Hirata  <kazu@cs.umass.edu>
1433
1434         * cfg.c (cached_make_edge): Call make_edge if edge cache is
1435         not available.  Use tail calls wherever possible.
1436         (make_edge): Call unchecked_make_edge to create an edge.
1437
1438         * tree-outof-ssa.c (SSANORM_USE_COALESCE_LIST): Remove.
1439         (coalesce_ssa_name): Don't check for
1440         SSANORM_USE_COALESCE_LIST.
1441         (rewrite_out_of_ssa): Don't use SSANORM_USE_COALESCE_LIST.
1442
1443 2005-02-22  Diego Novillo  <dnovillo@redhat.com>
1444
1445         * tree-into-ssa.c (rewrite_blocks): Move debug dumps from ...
1446         (rewrite_into_ssa): ... here.
1447
1448 2005-02-21  Alexandre Oliva  <aoliva@redhat.com>
1449
1450         PR tree-optimization/19786
1451         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Add one
1452         tag to another's may-alias bitmap when adding to the other's list.
1453
1454 2005-02-21  DJ Delorie  <dj@redhat.com>
1455
1456         * tree-ssa-loop-ivopts.c (computation_cost): Start register
1457         numbering at LAST_VIRTUAL_REGISTER+1 to avoid possibly using hard
1458         registers in unsupported ways.
1459         * expmed.c (init_expmed): Likewise.
1460
1461 2005-02-21  Stan Cox  <scox@redhat.com>
1462
1463         * config/iq2000/iq2000.h (DWARF_FRAME_RETURN_COLUMN): Change to 31.
1464
1465 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1466
1467         * tree-cfg.c (fold_cond_expr_cond): New.
1468         (make_edges): Call fold_cond_expr_cond.
1469         (find_taken_edge): Accept nothing but INTEGER_CST.
1470         (find_taken_edge_cond_expr): Reject INTEGER_CST other than 0
1471         and 1.
1472         (find_taken_edge_switch_expr): Remove a check for INTEGER_CST.
1473
1474         * flow.c (delete_dead_jumptables): Speed up by scanning insns
1475         that do not belong to any basic block.
1476
1477 2005-02-21  Jeff Law  <law@redhat.com>
1478
1479         * cfganal.c (find_unreachable_blocks): Manually CSE load of
1480         e->dest.
1481
1482 2005-02-21  Kazu Hirata  <kazu@cs.umass.edu>
1483
1484         * tree-outof-ssa.c (SSANORM_REMOVE_ALL_PHIS): Remove.
1485         (SSANORM_COALESCE_PARTITIONS, SSANORM_USE_COALESCE_LIST):
1486         Adjust their definitions.
1487         (remove_ssa_form): Don't check for SSANORM_REMOVE_ALL_PHIS.
1488         (rewrite_out_of_ssa): Don't use SSANORM_REMOVE_ALL_PHIS.
1489
1490         * c-objc-common.h, c-pretty-print.c, cgraphunit.c, except.c,
1491         genautomata.c, langhooks.c, langhooks.h, system.h,
1492         config/arm/lib1funcs.asm: Update copyright.
1493
1494 2005-02-21  Ulrich Weigand  <uweigand@de.ibm.com>
1495
1496         * dbxout.c (dbxout_function_end): Emit Lscope label always.
1497
1498 2005-02-21  Richard Guenther  <rguenth@gcc.gnu.org>
1499
1500         PR bootstrap/13770
1501         * doc/install.texi: Document --with-gc.
1502
1503 2005-02-21  Paolo Bonzini  <bonzini@gnu.org>
1504
1505         * simplify-rtx.c (simplify_unary_operation): Add a missing
1506         "break" statement.
1507
1508 2005-02-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1509
1510         PR tree-optimization/18663
1511         * tree-ssa-dom.c (extract_range_from_cond): Return 0
1512         if the type has variable bounds.
1513
1514 2005-02-20  Kazu Hirata  <kazu@cs.umass.edu>
1515
1516         * gcse.c: Remove an obsolete comment.
1517
1518         * cse.c (init_cse_reg_info): Use xmalloc instead of xrealloc.
1519
1520 2005-02-20  Hans-Peter Nilsson  <hp@axis.com>
1521
1522         * doc/extend.texi (Function Attributes) <Attribute const>: The
1523         attribute "pure" is below this text, not above.
1524
1525 2005-02-20  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
1526
1527         * pa.c (pa_assemble_integer, get_plabel): Small cleanups.
1528         (pa_asm_output_mi_thunk): Use asm_output_insn instead of fprintf.
1529         * som.h (ASM_OUTPUT_EXTERNAL_LIBCALL): Small cleanup.
1530
1531 2005-02-20  Zack Weinberg  <zack@codesourcery.com>
1532
1533         PR 18785
1534         * langhooks.h (struct lang_hooks): Add to_target_charset.
1535         * langhooks.c (lhd_to_target_charset): New function.
1536         * langhooks-def.h: Declare lhd_to_target_charset.
1537         (LANG_HOOKS_TO_TARGET_CHARSET): New macro.
1538         (LANG_HOOKS_INITIALIZER): Update.
1539         * c-common.c (c_common_to_target_charset): New function.
1540         * c-common.h: Declare it.
1541         * c-objc-common.h (LANG_HOOKS_TO_TARGET_CHARSET): Set to
1542         c_common_to_target_charset.
1543
1544         * defaults.c (TARGET_BELL, TARGET_BS, TARGET_CR, TARGET_DIGIT0)
1545         (TARGET_ESC, TARGET_FF, TARGET_NEWLINE, TARGET_TAB, TARGET_VT):
1546         Delete definitions.
1547         * system.h: Poison them.
1548         * doc/tm.texi: Don't discuss them.
1549         * builtins.c (fold_builtin_isdigit): Use lang_hooks.to_target_charset.
1550         * c-pretty-print.c (pp_c_integer_constant): Don't use pp_c_char.
1551         (pp_c_char): Do not attempt to generate letter escapes for
1552         newline, tab, etc.
1553         * config/arm/arm.c (output_ascii_pseudo_op): Likewise.
1554         * config/mips/mips.c (mips_output_ascii): Likewise.
1555
1556 2005-02-20  Dorit Naishlos  <dorit@il.ibm.com>
1557
1558         PR tree-optimization/19951
1559         * tree-vect-analyze.c (vect_analyze_loop_form): Check if loop exit edge
1560         is abnormal.
1561
1562 2005-02-19  Steven Bosscher  <stevenb@suse.de>
1563
1564         PR middle-end/19698
1565         * function.h (struct function): New field `max_loop_depth'.
1566         * cfgloop.c (establish_preds): Update maximum loop depth seen so far.
1567         (flow_loops_find): Reset the max loop depth count before finding loops.
1568         * flow.c (MAX_LIVENESS_ROUNDS): New constant.
1569         (update_life_info_in_dirty_blocks): Remove 2002-05-28 workaround.
1570         (calculate_global_regs_live): Make sure the loop will terminate
1571         when the initial sets are not empty.
1572
1573 2005-02-19  Zack Weinberg  <zack@codesourcery.com>
1574
1575         * mklibgcc.in: If libgcc_eh.a would be empty, put a dummy
1576         object inside.
1577         * config/ia64/hpux.h: Don't define LIBGCC_SPEC.
1578
1579 2005-02-19  Richard Sandiford  <rsandifo@redhat.com>
1580
1581         PR other/19525
1582         * doc/invoke.texi: Remove documentation of %M spec.
1583         * gcc.c: Likewise.
1584         (init_spec): Remove %M suffix from -lgcc_s.
1585         (do_spec_1): Remove 'M' case.
1586         * mklibgcc.in: Remove SHLIB_MULTILIB handling.  Expect SHLIB_LINK
1587         to put shared libraries in the multilib directory.  Remove the
1588         shlib_so_soname substitution variable.  Don't add a multilib encoding
1589         to shlib_base_name.  Set shlib_slibdir_qual to the full pathname
1590         reported by -print-multi-os-directory.  Pass @multilib_dir@ to
1591         SHLIB_INSTALL as well as SHLIB_LINK.
1592         * config/t-slibgcc-elf-ver (SHLIB_SONAME): Use @shlib_base_name@.
1593         (SHLIB_NAME): Delete.
1594         (SHLIB_DIR): New macro.
1595         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_SOLINK) in $(SHLIB_DIR).
1596         (SHLIB_INSTALL): Adjust accordingly.
1597         * config/t-slibgcc-darwin: As for t-slibgcc-elf-ver.
1598         * config/t-slibgcc-sld: Likewise.
1599         * config/t-libunwind-elf (SHLIBUNWIND_NAME): Delete.
1600         (SHLIBUNWIND_SONAME): Use @shlib_base_name@.
1601         (SHLIBUNWIND_LINK): Put $(SHLIBUNWIND_SONAME) and $(SHLIB_SOLINK)
1602         in $(SHLIB_DIR).
1603         (SHLIBUNWIND_INSTALL): Adjust accordingly.
1604         * config/i386/t-nwld (SHLIB_SONAME): Delete.
1605         (SHLIB_LINK, SHLIB_INSTALL): Use SHLIB_NAME instead of SHLIB_SONAME.
1606         Use @shlib_base_name@ instead of @shlib_so_name@.
1607         * config/ia64/t-hpux (SHLIB_LINK): Put @shlib_base_name@.so.0
1608         and @shlib_base_name@.so in @multilib_dir@.
1609         (SHLIB_INSTALL): Adjust accordingly.  Add @shlib_slibdir_qual@
1610         to the install path.
1611         * config/mips/t-slibgcc-irix: As for t-slibgcc-elf-ver.
1612         (SHLIB_LINK): Remove previous workaround.
1613         * config/pa/t-hpux-shlib (SHLIB_DIR, SHLIB_SLIBDIR_QUAL): New macros.
1614         (SHLIB_LINK): Put $(SHLIB_SONAME) and $(SHLIB_NAME) in $(SHLIB_DIR).
1615         (SHLIB_INSTALL): Adjust accordingly.  Add $(SHLIB_SLIBDIR_QUAL) to
1616         the install path.
1617         * config/rs6000/t-aix43 (SHLIB_LINK): Put @shlib_base_name@.a in
1618         @multilib_dir@.  Use @multilib_dir@ to check for threading libraries.
1619         (SHLIB_INSTALL): Adjust accordingly.
1620         (SHLIB_LIBS): Use @multilib_dir@ to check for threading libraries.
1621         * config/rs6000/t-aix52: As for config/rs6000/t-aix43.
1622         * config/sh/t-linux (SHLIB_LINK, SHLIB_INSTALL): As for
1623         config/t-slibgcc-elf-ver.
1624
1625 2005-02-19  Zdenek Dvorak  <dvorakz@suse.cz>
1626             Jakub Jelinek  <jakub@redhat.com>
1627
1628         PR tree-optimization/19828
1629         * tree-ssa-loop-im.c: Add a TODO comment.
1630         (movement_possibility): Return MOVE_PRESERVE_EXECUTION for calls
1631         without side-effects.
1632
1633 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1634
1635         * tree-ssa-ccp.c (widen_bitfield): Pass type to build_int_cst and don't
1636         call fold_convert.
1637
1638 2005-02-18  James E. Wilson  <wilson@specifixinc.com>
1639
1640         * doc/invoke.texi (IA-64 Options): Delete -mb-step.
1641         * config/ia64/ia64.c (last_group, group_idx): Delete variables.
1642         (errata_find_address_regs, errata_emit_nops, fixup_errata): Delete
1643         functions.
1644         (ia64_reorg): Delete fixup_errata call.
1645         * config/ia64/ia64.h (MASK_B_STEP, TARGET_B_STEP): Delete.
1646         (TARGET_SWITCHES): Delete -mb-step entry.
1647
1648 2005-02-19  Jakub Jelinek  <jakub@redhat.com>
1649
1650         PR c/20043
1651         * c-typeck.c (composite_type): Handle quals in transparent unions.
1652         (type_lists_compatible_p): Likewise.
1653
1654 2005-02-18  Stan Shebs  <shebs@apple.com>
1655
1656         * config/darwin.c (machopic_select_rtx_section): Don't put relocatable
1657         expressions in the .literal8 section.
1658
1659 2005-02-18  Geoffrey Keating  <geoffk@apple.com>
1660
1661         * config/rs6000/darwin-tramp.asm: Remove stray 'APPLE LOCAL' marker.
1662
1663 2005-02-18  Roger Sayle  <roger@eyesopen.com>
1664
1665         * fold-const.c (constant_boolean_node): Always create values of the
1666         specified type, don't bother calling truthvalue_conversion.
1667
1668 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1669
1670         * except.c (output_function_exception_table): Call
1671         assemble_external_libcall (eh_personality_libfunc).
1672
1673 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1674
1675         PR target/19886
1676         * config/ia64/ia64.h (struct machine_function): Add state_num.
1677         * config/ia64/ia64.c (process_epilogue,
1678         process_for_unwind_directive): Use new unwind state numbers each
1679         time rather than state 1.
1680
1681 2005-02-18  Ulrich Weigand  <uweigand@de.ibm.com>
1682
1683         PR target/20054
1684         * config/s390/s390.md ("*llgt_sidi", "*llgt_sidi_split"): Move to
1685         before the "*llgt_didi" pattern.
1686
1687 2005-02-18  Jason Merrill  <jason@redhat.com>
1688
1689         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Revert again.
1690
1691 2005-02-18  Richard Earnshaw  <rearnsha@arm.com>
1692
1693         * arm/lib1funcs.asm (FUNC_ALIAS): New macro.
1694         (div0): Use it in place of ARM_FUNC_ALIAS.
1695         (lshrdi3, ashrdi3, ashlrdi3): Likewise.
1696
1697 2005-02-18  Andrew Pinski  <pinskia@physics.uc.edu>
1698
1699         PR middle-end/20030
1700         * fold-const.c (fold_indirect_ref_1): Use the correct index for zero
1701         access, the lower bound of the array type if it exists.
1702
1703 2005-02-18  Alexandre Oliva  <aoliva@redhat.com>
1704
1705         PR c++/20008
1706         * stmt.c (expand_case): Don't assume cleanup_tree_cfg will remove
1707         cases that are out-of-range for the index type.
1708
1709 2005-02-18  James A. Morrison  <phython@gcc.gnu.org>
1710
1711         * stmt.c (emit_case_bit_tests): Call fold_convert instead of convert.
1712         (estimate_case_costs): Don't call convert.
1713         * expmed.c (expand_shift): Likewise.
1714         (make_tree): Call fold_convert instead of convert.
1715
1716 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1717
1718         PR c++/19813
1719         * emit-rtl.c (set_mem_attributes_minus_bitpos): Add assertion
1720         that ref to be marked MEM_READONLY_P doesn't have base that needs
1721         constructing.
1722
1723 2005-02-18  Joseph S. Myers  <joseph@codesourcery.com>
1724
1725         * genautomata.c (output_get_cpu_unit_code_func,
1726         output_cpu_unit_reservation_p): Don't generate old-style function
1727         definitions.
1728
1729 2005-02-18  Jakub Jelinek  <jakub@redhat.com>
1730
1731         PR c++/20023
1732         PR tree-optimization/20009
1733         * convert.c (convert_to_integer): Revert 2005-02-16 change.
1734
1735         PR tree-optimization/18947
1736         * cgraphunit.c (cgraph_finalize_function): When redefining an extern
1737         inline, remove all nodes that are inlined into the extern inline
1738         being redefined.
1739
1740 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1741
1742         * bt-load.c, cfgloop.c, convert.c, dominance.c, global.c,
1743         loop-invariant.c, stmt.c, tree-ssa-forwprop.c,
1744         tree-ssa-live.c, tree-ssanames.c, tree-vn.c,
1745         config/host-linux.c, config/arm/fpa.md, config/avr/avr.h:
1746         Update copyright.
1747
1748 2005-02-17  Roger Sayle  <roger@eyesopen.com>
1749
1750         PR tree-optimization/19917
1751         * tree-eh.c (tree_could_trap_p): Consider calls to weak functions
1752         to be potentially trapping.
1753
1754 2005-02-17  Kazu Hirata  <kazu@cs.umass.edu>
1755
1756         * libgcc2.c, tree-vect-analyze.c: Fix comment typos.
1757
1758 2005-02-17  Andreas Krebbel  <krebbel1@de.ibm.com>
1759
1760         * builtins.c (expand_builtin_return_addr): Remove tem parameter.
1761         tem becomes a local variable which is set to the value of the
1762         back end defined INITIAL_FRAME_ADDRESS macro.
1763         (expand_builtin_frame_address): Omit the base parameter to
1764         expand_builtin_return_addr.
1765         (expand_builtin_profile_func): Likewise.
1766         * config/s390/s390.h (INITIAL_FRAME_ADDRESS_RTX): Define new macro.
1767         (DYNAMIC_CHAIN_ADDRESS): Remove the case for the initial frame.
1768         * doc/tm.texi: Documentation for INITIAL_FRAME_ADDRESS_RTX added.
1769
1770 2005-02-17  Jakub Jelinek  <jakub@redhat.com>
1771
1772         * config/s390/s390.c (s390_alloc_pool, s390_free_pool,
1773         s390_chunkify_start): Use BITMAP_ALLOC and BITMAP_FREE.
1774         * config/frv/frv.c (frv_function_epilogue): Likewise.
1775
1776 2005-02-17  Daniel Berlin  <dberlin@dberlin.org>
1777
1778         * lambda-code (perfect_nestify): Remove mark/unmark
1779         for rewriting hack.
1780         * tree-loop-linear.c (linear_transform_loops): Add
1781         rewrite_into_ssa call so that ssa is correct for
1782         rewriting into loop closed.
1783
1784 2005-02-17  Nathan Sidwell  <nathan@codesourcery.com>
1785
1786         * bitmap.h (BITMAP_XMALLOC, BITMAP_XFREE): Remove.
1787         * bb-reorder.c (duplicate_computed_gotos): Use BITMAP_ALLOC and
1788         BITMAP_FREE.
1789         * bt-load.c (btr_def_live_range, combine_btr_defs,
1790         migrate_btr_def, migrate_btr_defs): Likewise.
1791         * cfgcleanup.c (thread_jump): Likewise.
1792         * cfgloop.c (get_loop_body_in_bfs_order): Likewise.
1793         * df.c (df_insn_table_realloc, df_bitmaps_alloc, df_bitmaps_free,
1794         df_alloc, df_free, df_du_chain_create, df_bb_rd_local_compute,
1795         df_rd_local_compute, df_reg_info_compute): Likewise.
1796         * dominance.c (init_dom_info, free_dom_info): Likewise.
1797         * flow.c (init_propagate_block_info,
1798         free_propagate_block_info): Likewise.
1799         * gcse.c (alloc_gcse_mem, free_gcse_mem): Likewise.
1800         * global.c (allocate_bb_info, free_bb_info, calculate_reg_pav,
1801         modify_reg_pav): Likewise.
1802         * loop-invariant.c (find_defs, find_invariant_insn,
1803         find_invariants, free_inv_motion_data): Likewise.
1804         * predict.c (tree_predict_by_opcode,
1805         estimate_bb_frequencies): Likewise.
1806         * stmt.c (expand_case): Likewise.
1807         * tree-cfg.c (tree_duplicate_sese_region): Likewise.
1808         * tree-dfa.c (mark_new_vars_to_rename): Likewise.
1809         * tree-if-conv.c (get_loop_body_in_if_conv_order): Likewise.
1810         * tree-into-ssa.c (insert_phi_nodes_for, def_blocks_free,
1811         get_def_blocks_for, mark_def_site_blocks, rewrite_into_ssa,
1812         rewrite_ssa_into_ssa): Likewise.
1813         * tree-optimize.c (tree_rest_of_compilation): Likewise.
1814         * tree-outof-ssa.c (new_temp_expr_table, free_temp_expr_table,
1815         analyze_edges_for_bb, perform_edge_inserts): Likewise.
1816         * tree-scalar-evolution.c (scev_initialize, scev_finalize): Likewise.
1817         * tree-sra.c (tree_sra): Likewise.
1818         * tree-ssa-alias.c (init_alias_info, delete_alias_info): Likewise.
1819         * tree-ssa-ccp.c (ccp_fold_builtin): Likewise.
1820         * tree-ssa-dce.c (tree_dce_init, tree_dce_done): Likewise.
1821         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Likewise.
1822         * tree-ssa-dse.c (tree_ssa_dse): Likewise.
1823         * tree-ssa-forwprop.c (tree_ssa_forward_propagate_single_use_var):
1824         Likewise.
1825         * tree-ssa-live.c (new_tree_live_info, delete_tree_live_info,
1826         calculate_live_on_entry, calculate_live_on_exit,
1827         build_tree_conflict_graph): Likewise.
1828         * tree-ssa-loop-ivopts.c (tree_ssa_iv_optimize_init, record_use,
1829         record_important_candidates, set_use_iv_cost, find_depends,
1830         determine_use_iv_costs, iv_ca_new, iv_ca_free, free_loop_data,
1831         tree_ssa_iv_optimize_finalize): Likewise.
1832         * tree-ssa-loop-manip.c (add_exit_phis_var, get_loops_exit,
1833         find_uses_to_rename_use, rewrite_into_loop_closed_ssa,
1834         tree_duplicate_loop_to_header_edge): Likewise.
1835         * tree-ssa-pre.c (init_pre, fini_pre): Likewise.
1836         * tree-ssa.c (verify_flow_insensitive_alias_info,
1837         verify_name_tags, verify_ssa, init_tree_ssa,
1838         delete_tree_ssa): Likewise.
1839         * tree-ssanames.c (marked_ssa_names, init_ssanames,
1840         fini_ssanames): Likewise.
1841         * tree-vectorizer.c (slpeel_tree_peel_loop_to_edge): Likewise.
1842
1843 2005-02-17  Ralf Corsepius  <ralf.corsepius@rtems.org>
1844
1845         * config/rs6000/t-rtems: Completely reworked.
1846
1847 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1848
1849         * tree-data-ref.c (array_base_name_differ_p): Remove gcc_assert.
1850
1851 2005-02-17  Ira Rosen  <irar@il.ibm.com>
1852
1853         * tree-vect-analyze.c (vect_analyze_pointer_ref_access): Use
1854         POINTER_TYPE_P when checking that type is a pointer.
1855         (vect_get_memtag): Remove.
1856         (vect_address_analysis): Use POINTER_TYPE_P. Call
1857         vect_object_analysis with dummy parameter for memtag.
1858         (vect_object_analysis): Extract memtag (functionality that
1859         used to be in vect_get_memtag and moved here). Fix printings.
1860         (vect_analyze_data_refs): Fix comment. Call vect_object_analysis
1861         with correct parameters. Remove call to vect_get_memtag.
1862
1863 2005-02-17  Dorit Naishlos  <dorit@il.ibm.com>
1864
1865         * Makefile.in (tree-vect-analyze.o, tree-vect-transform.o): New.
1866         (tree-vectorizer.o): Added missing dependencies.
1867
1868         * tree-vectorizer.h (vect_dump, vect_verbosity_level): Added extern
1869         decleration.
1870         (slpeel_tree_peel_loop_to_edge): Function externalized (had a static
1871         declaration in tree-vectorizer.c, now has an extern declaration in
1872         tree-vectorizer.h).
1873         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1874         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1875         get_vectype_for_scalar_type, vect_is_simple_use,
1876         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1877         vect_supportable_dr_alignment, new_loop_vec_info, destroy_loop_vec_info,
1878         new_stmt_vec_info, vect_analyze_loop, vectorizable_load,
1879         vectorizable_store, vectorizable_operation, vectorizable_assignment,
1880         vect_transform_loop, vect_print_dump_info, vect_set_verbosity_level,
1881         find_loop_location): Likewise.
1882
1883         * tree-vectorizer.c (langhooks.h): #include removed.
1884         (slpeel_tree_peel_loop_to_edge): Function externalized. Declaration
1885         moved to tree-vectorized.h.
1886         (slpeel_make_loop_iterate_ntimes, slpeel_can_duplicate_loop_p,
1887         slpeel_verify_cfg_after_peeling, vect_strip_conversion,
1888         get_vectype_for_scalar_type, vect_is_simple_use,
1889         vect_is_simple_iv_evolution, vect_can_force_dr_alignment_p,
1890         vect_supportable_dr_alignment, new_loop_vec_info,
1891         destroy_loop_vec_info, new_stmt_vec_info, vect_print_dump_info,
1892         vect_set_verbosity_level, find_loop_location): Likewise.
1893
1894         (vect_analyze_loop): Function externalized. Declaration moved to
1895         tree-vectorized.h. Function definition moved to tree-vect-analyze.c.
1896         (vect_analyze_loop_form): Moved to tree-vect-analyze.c.
1897         (vect_mark_stmts_to_be_vectorized, vect_analyze_scalar_cycles,
1898         vect_analyze_data_ref_accesses, vect_analyze_data_ref_dependences,
1899         vect_analyze_data_refs_alignment, vect_compute_data_refs_alignment,
1900         vect_enhance_data_refs_alignment, vect_analyze_operations,
1901         exist_non_indexing_operands_for_use_p, vect_mark_relevant,
1902         vect_stmt_relevant_p, vect_get_loop_niters,
1903         vect_analyze_data_ref_dependence, vect_compute_data_ref_alignment,
1904         vect_analyze_data_ref_access, vect_analyze_pointer_ref_access,
1905         vect_can_advance_ivs_p, vect_get_ptr_offset, vect_analyze_offset_expr,
1906         vect_base_addr_differ_p, vect_object_analysis, vect_address_analysis,
1907         vect_get_memtag): Likewise.
1908
1909         (vectorizable_load): Function externalized. Declaration moved to
1910         tree-vectorized.h. Function definition moved to tree-vect-transform.c.
1911         (vectorizable_store, vectorizable_operation, vectorizable_assignment,
1912         vect_transform_loop): Likewise.
1913         (vect_transform_stmt): Moved to tree-vect-transform.c.
1914         (vect_align_data_ref, vect_create_destination_var,
1915         vect_create_data_ref_ptr, vect_create_index_for_vector_ref,
1916         vect_create_addr_base_for_vector_ref, vect_get_new_vect_var,
1917         vect_get_vec_def_for_operand, vect_init_vector,
1918         vect_finish_stmt_generation, vect_generate_tmps_on_preheader,
1919         vect_build_loop_niters, vect_update_ivs_after_vectorizer,
1920         vect_gen_niters_for_prolog_loop, vect_update_inits_of_dr,
1921         vect_update_inits_of_drs, vect_do_peeling_for_alignment,
1922         vect_do_peeling_for_loop_bound): Likewise.
1923
1924         * tree-vect-analyze.c: New file.
1925         * tree-vect-transform.c: New file.
1926
1927 2005-02-17  Jason Merrill  <jason@redhat.com>
1928
1929         PR mudflap/19319, c++/19317
1930         * gimplify.c (gimplify_modify_expr_rhs) [CALL_EXPR]: Make return
1931         slot explicit.
1932
1933 2005-02-17  Gerald Pfeifer  <gerald@pfeifer.com>
1934
1935         * doc/install.texi (Specific): Update link for Darwin-specific
1936         tool binary site.
1937
1938 2005-02-16  James A. Morrison  <phython@gcc.gnu.org>
1939
1940         * fold-const.c (invert_truthvalue): <INTEGER_CST>: Call
1941         constant_boolean_node.
1942
1943 2005-02-16  David Edelsohn  <edelsohn@gnu.org>
1944
1945         PR target/19019
1946         * config/rs6000/t-aix43 (SHLIB_MAPFILES): Add libgcc-ppc64.ver.
1947         * config/rs6000/t-aix52 (SHLIB_MAPFILES): Same.
1948
1949 2005-02-16  Richard Henderson  <rth@redhat.com>
1950
1951         PR 19920
1952         * libgcc2.c (WORD_SIZE): Remove all definitions; replace uses
1953         with W_TYPE_SIZE.
1954         (HIGH_WORD_COEFF, HIGH_HALFWORD_COEFF): Remove all definitions;
1955         replace uses with Wtype_MAXp1_F.
1956         (L_fixunstfdi, L_fixtfdi, L_floatditf, L_fixunsxfdi, L_fixxfdi,
1957         L_floatdixf, L_fixunsxfsi, L_fixunsdfdi, L_floatdidf, L_fixunsdfsi,
1958         L_powidf2, L_powixf2, L_powitf2, L_muldc3, L_divdc3, L_mulxc3,
1959         L_divxc3, L_multc3, L_divtc3): Protect with HAVE_DFMODE, HAVE_XFMODE,
1960         and HAVE_TFMODE as appropriate.
1961         (__fixunssfDI): Provide an implementation that doesn't need DFmode.
1962         (__floatdisf): Likewise.
1963         * libgcc2.h (LIBGCC2_DOUBLE_TYPE_SIZE): New.
1964         (HAVE_DFMODE, HAVE_XFMODE, HAVE_TFMODE): New.
1965         (Wtype_MAXp1_F): New.
1966         (DFtype, DCtype, __fixdfdi, __floatdidf, __fixunsdfSI, __fixunsdfDI,
1967         __powidf2, __divdc3, __muldc3): Protect with HAVE_DFMODE.
1968
1969 2005-02-16  Richard Earnshaw  <rearnsha@arm.com>
1970
1971         * PR target/19162
1972         * arm.c (arm_apply_result_size): New function.
1973         * arm.h (APPLY_RESULT_SIZE): Define.
1974         * arm-protos.h (arm_apply_result_size): Add prototype.
1975         * arm.md (RO_REGNUM, FPA_F0_REGNUM, FPA_F7_REGNUM): New constants.
1976         (movxf): New expand.
1977         (ldmsi_postinc4_thumb, stmsi_postinc4_thumb): New patterns for Thumb.
1978         (call_value_symbol): Remove predicate for operand 0.
1979         (call_value_insn, sibcall_value, sibcall_value_insn): Likewise.
1980         (untyped_call): Rework to correclty return values for any type.
1981         (untyped_return): New expand.
1982         * fpa.md (movxf_fpa): Simplify and use sfm/lfm when appropriate.
1983
1984 2005-02-16  Stan Shebs  <shebs@apple.com>
1985
1986         * config.gcc (powerpc-*-darwin*): Use fragment for Darwin 8 or later.
1987         * config/rs6000/t-darwin8: New, for 64-bit multilib.
1988
1989 2005-02-16  Eric Botcazou  <ebotcazou@libertysurf.fr>
1990
1991         * doc/install.texi (sparc-sun-solaris2*): Document required GMP
1992         configure settings on Solaris 7 and later.
1993
1994 2005-02-16  Diego Novillo  <dnovillo@redhat.com>
1995
1996         PR tree-optimization/19865
1997         * tree-optimize.c (init_tree_optimization_passes): Run
1998         pass_may_alias after pass_sra.
1999
2000 2005-02-16  Richard Henderson  <rth@redhat.com>
2001             Stuart Hastings  <stuart@apple.com>
2002
2003         PR debug/19521
2004         * dbxout.c (dbxout_function_end): Take decl parameter; update callers.
2005         Do nothing if debug info suppressed for this function.
2006         (dbxout_begin_function): Early exit if debug info suppressed for
2007         this function.
2008
2009 2005-02-16  Kazu Hirata  <kazu@cs.umass.edu>
2010
2011         PR target/20007
2012         * config/ip2k/ip2k.c (ip2k_reorg): Adjust calls to
2013         find_basic_blocks.
2014         * config/sh/sh.c (sh_output_mi_thunk): Likewise.
2015
2016         PR tree-optimization/19967
2017         * builtins.c (expand_builtin_strstr, expand_builtin_strpbrk,
2018         expand_builtin_strchr, expand_builtin_strrchr): Take a new
2019         argument TYPE.  Adjust calls to fold_builtin_XXX.
2020         (expand_builtin, fold_builtin_1): Adjust calls to
2021         expand_builtin_XXX.
2022         (fold_builtin_strchr, fold_builtin_strpbrk,
2023         fold_builtin_strstr, fold_builtin_strrchr): Convert the folded
2024         result to a requested type TYPE.
2025
2026 2005-02-16  Jakub Jelinek  <jakub@redhat.com>
2027
2028         PR middle-end/19857
2029         * fold-const.c (fold): Don't optimize (T)(x & cst) to
2030         (T)x & (T)cst if (T)cst overflows.
2031         * convert.c (convert_to_integer) <case POINTER_TYPE>: Pass
2032         TYPE_UNSIGNED (type) as type_for_size's UNSIGNEDP argument.
2033
2034 2005-02-15  Jeff Law  <law@redhat.com>
2035
2036         * gcse.c (blocks_with_calls): New bitmap.
2037         (alloc_gcse_mem): Allocate it.
2038         (free_gcse_mem): Free it.
2039         (clear_modifY_mem_tables): Clear it.
2040         (record_last_mem_set_info): Set the proper bit in BLOCK_WITH_CALLS
2041         when we encounter CALL_INSNs.
2042         (compute_transp, case MEM): Handle blocks with calls separate
2043         from blocks without calls.  Use bitmap iterators rather than
2044         FOR_EACH_BB.
2045
2046 2005-02-15  Peter O'Gorman  <peter@pogma.com>
2047
2048         PR bootstrap/18810
2049         * mklibgcc.in (vis_hide): Use a temporary object file, not
2050         -o /dev/null.
2051
2052 2005-02-15  Andy Hutchinson  <HutchinsonAndy@netscape.net>
2053
2054         PR target/19924
2055         * config/avr/avr.h (MODES_TIEABLE_P): Define to 1 to allow subreg
2056         access optimization.
2057
2058 2005-02-15  David Edelsohn  <edelsohn@gnu.org>
2059             Alan Modra  <amodra@bigpond.net.au>
2060
2061         PR target/19019
2062         * config/rs6000/darwin-ldouble.c (_xlqadd): Rename to __gcc_qadd.
2063         (_xlqsub): Rename to __gcc_qsub.
2064         (_xlqmul): Rename to __gcc_qmul.
2065         (_xlqdiv): Rename to __gcc_qdiv.
2066         Provide versioned symbol aliases with old names.
2067         * config/rs6000/libgcc-ppc64.ver: Rename symbols.
2068         * config/rs6000/rs6000.c (rs6000_init_libfuncs): Rename symbols.
2069         * config/rs6000/t-aix43 (LIB2FUNCS_EXTRA): New.
2070         * config/rs6000/t-aix52 (LIB2FUNCS_EXTRA): New.
2071         * config/rs6000/t-newas (LIB2FUNCS_EXTRA): New.
2072
2073 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2074
2075         * fold-const.c (fold): Fold -(~A) to A + 1.  Fold ~(-A) to A - 1.
2076         Fold ~(A - 1) and ~(A + -1) to -A.
2077
2078 2005-02-15  James A. Morrison  <phython@gcc.gnu.org>
2079
2080         PR pch/14940
2081         PR target/19300
2082         * config/host-linux.c (linux_gt_pch_use_address): Copy from
2083         config/pa/pa-host.c:pa_gt_pch_use_address.
2084
2085 2005-02-15  Daniel Berlin  <dberlin@dberlin.org>
2086
2087         * tree-vn.c (get_value_handle): Make sure that given an
2088         is_gimple_min_invariant expression, we always return it.
2089
2090 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2091
2092         * passes.c (rest_of_handle_gcse): Fix a comment.
2093
2094 2005-02-15  Jeff Law  <law@redhat.com>
2095
2096         * gcse.c (canon_modify_mem_set_list_set): Kill unnecessary
2097         bitmap.
2098         (alloc_gcse_mem, free_gcse_mem): Corresponding changes.
2099         (canon_list_insert, record_last_mem_set_info): Similarly.
2100         (clear_modify_mem_tables): Similarly.
2101
2102 2005-02-15  Kazu Hirata  <kazu@cs.umass.edu>
2103
2104         * bitmap.c, bitmap.h, lambda-code.c, tree-dfa.c, tree-dump.c,
2105         tree-dump.h, tree-ssa-loop-manip.c, value-prof.c,
2106         config/mips/mips.md, config/rs6000/aix.h,
2107         config/rs6000/beos.h, config/rs6000/sysv4.h: Update copyright.
2108
2109 2005-02-15  Richard Henderson  <rth@redhat.com>
2110
2111         * bb-reorder.c (find_traces_1_round): Force fallthru edge from a
2112         call to be best_edge.
2113
2114 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2115
2116         * basic-block.h: Adjust the prototype for find_basic_blocks.
2117         * cfgbuild.c (find_basic_blocks): Remove unused arguments.
2118         * passes.c (rest_of_handle_loop_optimize): Adjust the call to
2119         find_basic_blocks.
2120
2121         * flow.c (recompute_reg_usage): Remove all arguments.
2122         * passes.c (rest_of_compilation): Adjust the call to
2123         recompute_reg_usage.
2124         * rtl.h: Adjust the prototype for recompute_reg_usage.
2125
2126 2005-02-14  Daniel Berlin  <dberlin@dberlin.org>
2127
2128         * tree-dump.c (dump_files): Update to reflect new member
2129         of dump_file_info.
2130         (dump_register): Add new argument.
2131         Set glob name.
2132         (dump_switch_p_1): Check against glob name if doglob was passed.
2133         (dump_switch_p): Check against regular first, then glob if
2134         we didn't have any hits on the dump name.
2135         * tree-optimize.c (register_one_dump_file):
2136         Pass in glob name as well.
2137         * tree-pass.h (struct dump_file_info): Add glob
2138         member.
2139
2140 2005-02-14  Joseph S. Myers  <joseph@codesourcery.com>
2141
2142         PR preprocessor/16323
2143         * doc/invoke.texi: Document that -Wendif-labels is on by default.
2144
2145 2005-02-14  David Edelsohn  <edelsohn@gnu.org>
2146
2147         PR target/19019
2148         * config/rs6000/rs6000.md (trunctfdf2): Change to define_expand.
2149         (trunctfdf2_internal1): New.
2150         (trunctfdf2_internal2): Renamed from trunctfdf2.
2151
2152 2005-02-14  Diego Novillo  <dnovillo@redhat.com>
2153
2154         PR tree-optimization/19853
2155         * tree-dfa.c (add_referenced_var): Always examine DECL_INITIAL.
2156
2157 2005-02-14  Kazu Hirata  <kazu@cs.umass.edu>
2158
2159         * passes.c (rest_of_handle_loop_optimize): Remove calls to
2160         delete_dead_jumptables and cleanup_cfg.
2161
2162 2005-02-14  Ulrich Weigand  <uweigand@de.ibm.com>
2163
2164         * reload.c (find_reloads): Swap address_reloaded flags when
2165         swapping commutative operands.
2166
2167 2005-02-14  Sebastian Pop  <pop@cri.ensmp.fr>
2168
2169         * lambda-code.c (lambda_loopnest_to_gcc_loopnest, perfect_nestify):
2170         Use standard_iv_increment_position for computing the bsi position
2171         for create_iv.
2172         * tree-ssa-loop-manip.c (create_iv): Add a comment on how to compute
2173         the bsi position.
2174
2175 2005-02-13  Zdenek Dvorak  <dvorakz@suse.cz>
2176
2177         PR target/17428
2178         * cfgrtl.c (safe_insert_insn_on_edge): Avoid extending
2179         life range of hard registers.
2180         * value-prof.c (insn_prefetch_values_to_profile): Only
2181         scan normal insns.
2182
2183         * value-prof.c (rtl_find_values_to_profile): Do not look for values to
2184         profile in libcalls.
2185
2186 2005-02-13  Nathan Sidwell  <nathan@codesourcery.com>
2187
2188         * bitmap.h (bitmap_and_compl_into): Return bool.
2189         * bitmap.c (bitmap_and_compl_into): Return changed flag.
2190
2191 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2192
2193         PR tree-optimization/19944
2194         * fold-const.c (fold): Re-add ABS_EXPR folding.
2195
2196 2005-02-13  David Edelsohn  <edelsohn@gnu.org>
2197
2198         PR target/19019
2199         * config/rs6000/aix.h ({TARGET,MASK}_XL_CALL): Rename to
2200         {TARGET,MASK}_XL_COMPAT.
2201         (SUBTARGET_SWITCHES): Rename xl-call to xl-compat.  Use
2202         MASK_XL_COMPAT.
2203         * config/rs6000/beos.h ({TARGET,MASK}_XL_CALL): Remove.
2204         * config/rs6000/rs6000.c (function_arg): Change TARGET_XL_CALL to
2205         TARGET_XL_COMPAT.
2206         (rs6000_arg_partial_bytes): Same.
2207         (rs6000_generate_compare): Generate PARALLEL for compare if TFmode
2208         and XL compatibility enabled.
2209         * config/rs6000/rs6000.h (TARGET_XL_CALL): Rename to TARGET_XL_COMPAT.
2210         * config/rs6000/rs6000.md (cmptf_internal1): Add !TARGET_XL_COMPAT
2211         test to final condition.
2212         (cmptf_internal2): New.
2213         * doc/invoke.texi (RS/6000 Subtarget Options): Change xl-call to
2214         xl-compat.  Add TFmode information to description.
2215
2216 2005-02-13  Kazu Hirata  <kazu@cs.umass.edu>
2217
2218         * flags.h, read-rtl.c, tree-ssa-live.h: Update copyright.
2219
2220 2005-02-13  Jason Merrill  <jason@redhat.com>
2221
2222         PR c++/16405
2223         * fold-const.c (fold_indirect_ref_1): Split out from...
2224         (build_fold_indirect_ref): Here.
2225         (fold_indirect_ref): New fn.
2226         * tree.h: Declare it.
2227         * gimplify.c (gimplify_compound_lval): Call fold_indirect_ref.
2228         (gimplify_modify_expr_rhs): Likewise.
2229         (gimplify_expr): Likewise.
2230
2231 2005-02-13  James A. Morrison  <phython@gcc.gnu.org>
2232
2233         PR tree-optimization/14303
2234         PR tree-optimization/15784
2235         * fold-const.c (fold): Fold ABS_EXPR<x> >= 0 to true, when possible.
2236         Fold ABS_EXPR<x> < 0 to false.  Fold ABS_EXPR<x> == 0 to x == 0 and
2237         ABS_EXPR<x> != 0 to x != 0.
2238
2239 2005-02-12  Kazu Hirata  <kazu@cs.umass.edu>
2240
2241         * c-tree.h, combine.c, expmed.c, flow.c, libgcc2.c,
2242         simplify-rtx.c, tree-ssa-live.h: Fix comment typos.  Follow
2243         spelling conventions.
2244
2245         * passes.c (rest_of_handle_gcse): Don't run cse_main and
2246         delete_trivially_dead_insns too many times.
2247
2248         * passes.c (rest_of_handle_gcse): Remove dead assignments to
2249         tem and tem2.
2250
2251 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2252
2253         * tree-vectorizer.c (vect_get_base_and_offset): Remove.
2254         (vect_is_simple_iv_evolution): Remove redundant parameter
2255         and step check.
2256         (vect_analyze_scalar_cycles): Call vect_is_simple_iv_evolution
2257         without last parameter.
2258         (vect_analyze_pointer_ref_access): Get access_fn as parameter.
2259         Return pointer step. Call vect_is_simple_iv_evolution without
2260         last parameter. Check only that the step is multiple of size
2261         type. Remove stmt_vinfo updates.
2262         (vect_get_memtag_and_dr): Remove.
2263         (vect_get_memtag): New function.
2264         (vect_address_analysis): New function.
2265         (vect_object_analysis): New function.
2266         (vect_analyze_data_refs): Call vect_object_analysis and
2267         vect_get_memtag. Update stmt_vinfo fields.
2268
2269 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2270
2271         * tree-data-ref.c (array_base_name_differ_p): Check that the bases
2272         exist and are objects. Remove checks for pointer.
2273         * tree-vectorizer.c (vect_create_addr_base_for_vector_ref): Use
2274         STMT_VINFO_VECT_DR_BASE_ADDRESS instead of DR_BASE_NAME.
2275         (vect_create_data_ref_ptr): Likewise.
2276         (vect_base_addr_differ_p): New function.
2277         (vect_analyze_data_ref_dependence): Call vect_base_addr_differ_p.
2278         (vect_analyze_pointer_ref_access): Add output parameter - ptr_init.
2279         Don't set the DR_BASE_NAME field of data-ref.
2280         (vect_get_memtag_and_dr): Use ptr_init instead of DR_BASE_NAME.
2281
2282 2005-02-12  Uros Bizjak  <uros@kss-loka.si>
2283
2284         * optabs.h (enum optab_index): Add new OTI_ldexp.
2285         (ldexp_optab): Define corresponding macro.
2286         * optabs.c (init_optabs): Initialize ldexp_optab.
2287         * genopinit.c (optabs): Implement ldexp_optab using ldexp?f3
2288         patterns.
2289         * builtins.c (expand_builtin_mathfn_2): Handle BUILT_IN_LDEXP{,F,L}
2290         using ldexp_optab.
2291         (expand_builtin): Expand BUILT_IN_LDEXP{,F,L} using
2292         expand_builtin_mathfn_2 if flag_unsafe_math_optimizations is set.
2293
2294         * config/i386/i386.md (ldexpsf3, ldexpdf3, ldexpxf3): New expanders
2295         to implement ldexpf, ldexp and ldexpl built-ins as inline x87
2296         intrinsics.
2297
2298 2005-02-12  Ira Rosen  <irar@il.ibm.com>
2299
2300         * tree-vectorizer.h (struct _stmt_vec_info): Rename a field: base
2301         to base_address.
2302         * tree-vectorizer.c (new_stmt_vec_info): Rename the above field of
2303         stmt_vec_info.
2304         (vect_get_base_and_offset): Always return an address.
2305         (vect_create_addr_base_for_vector_ref): Remove treatment for
2306         different data reference types.
2307         (vect_compute_data_ref_alignment): Rename base to base_address in
2308         stmt_vec_info. Get the object in order to force its alignment.
2309         (vect_get_memtag_and_dr): Rename base to base_address in
2310         stmt_vec_info. Extract the object for memtag analysis.
2311
2312 2005-02-12  Hans-Peter Nilsson  <hp@axis.com>
2313
2314         PR regression/19898.
2315         * config/cris/cris.c (cris_notice_update_cc): When testing if insn
2316         changes cc_status, use apply modified_in_p to part of cc_status
2317         and insn, not cris_reg_overlap_mentioned_p on SET_DEST of insn
2318         body.
2319
2320 2005-02-11  Richard Henderson  <rth@redhat.com>
2321
2322         * tree-complex.c (expand_complex_libcall): New.
2323         (expand_complex_multiplication): Use it for c99 compliance.
2324         (expand_complex_division): Likewise.
2325         * fold-const.c (fold_complex_add, fold_complex_mult): New.
2326         (fold): Call them.
2327         * builtins.c (built_in_names): Remove const.
2328         * tree.c (build_common_builtin_nodes): Build complex arithmetic
2329         builtins.
2330         * tree.h (BUILT_IN_COMPLEX_MUL_MIN, BUILT_IN_COMPLEX_MUL_MAX): New.
2331         (BUILT_IN_COMPLEX_DIV_MIN, BUILT_IN_COMPLEX_DIV_MAX): New.
2332         (built_in_names): Remove const.
2333         * c-common.c (c_common_type_for_mode): Handle complex modes.
2334         * flags.h, toplev.c (flag_complex_method): Rename from
2335         flag_complex_divide_method.
2336         * libgcc2.c (__divsc3, __divdc3, __divxc3, __divtc3,
2337         __mulsc3, __muldc3, __mulxc3, __multc3): New.
2338         * libgcc2.h: Declare them.
2339         * libgcc-std.ver: Export them.
2340         * mklibgcc.in (lib2funcs): Build them.
2341
2342 2005-02-11  Steven Bosscher  <stevenb@suse.de>
2343
2344         PR tree-optimization/19876
2345         Partially revert my change from 2005-01-14
2346         * tree-ssa-pre.c (compute_antic_aux): Make recursive once again...
2347         (compute_antic): ...and remove the loop here.
2348
2349 2005-02-11  Jakub Jelinek  <jakub@redhat.com>
2350
2351         PR middle-end/19858
2352         * fold-const.c (make_bit_field_ref): If bitpos == 0 and bitsize
2353         is number of inner's bits, avoid creating a BIT_FIELD_REF.
2354
2355         * config/rs6000/sysv4.h (ENDFILE_LINUX_SPEC): Use crtendS.o instead of
2356         crtend.o if -pie.  Use %{x:a;:b} spec syntax.
2357
2358 2005-02-11  Daniel Jacobowitz  <dan@codesourcery.com>
2359
2360         * config/mips/linux-unwind.h (mips_fallback_frame_state): Adjust
2361         offsets for the big-endian 32-bit case.
2362
2363 2005-02-11  Joseph S. Myers  <joseph@codesourcery.com>
2364
2365         * config/ia64/hpux.h (WCHAR_TYPE, WCHAR_TYPE_SIZE): Define.
2366
2367 2005-02-11  Dale Johannesen  <dalej@apple.com>
2368
2369         * cselib.c (cselib_process_insn):  Clear out regs where
2370         HARD_REGNO_CALL_PART_CLOBBERED is true at a call.
2371         * reload.c (find_equiv_reg): Ditto.
2372
2373 2005-02-11  Ian Lance Taylor  <ian@airs.com>
2374
2375         * read-rtl.c (read_rtx_1): Give fatal error if we see a vector
2376         with no elements.
2377
2378         * tree.c (build_function_type_list): Work correctly if there are
2379         no arguments.
2380
2381 2005-02-11  Ulrich Weigand  <uweigand@de.ibm.com>
2382
2383         * config/s390/s390.md ("*cmpdi_cct", "*cmpsi_cct", "*cmpdi_ccs",
2384         "*cmpsi_ccs"): Use %h instead of %c to print immediate operand.
2385         ("*zero_extendhisi2_64", "*zero_extendhisi2_31"): Choose based on
2386         TARGET_ZARCH instead of TARGET_64BIT.
2387
2388 2005-02-11  Ralf Corsepius  <ralf.corsepius@rtems.org>
2389
2390         * config/rs6000/t-rtems:
2391         (MULTILIB_OPTIONS): Remove mcpu=602.
2392         (MUTLILIB_DIRNAMES): Remove m602.
2393         (MULTILIB_MATCHES): Add ${MULTILIB_MATCHES_FLOAT}.
2394         Let mcpu=602 match mcpu=603.
2395         (MULTILIB_NEW_EXCEPTIONS_ONLY): Add mcpu=601, mcpu=602, mcpu=m603.
2396
2397 2005-02-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2398
2399         * pa/linux-unwind.h (pa32_fallback_frame_state): Handle misaligned
2400         signal trampolines.
2401
2402 2005-02-10  David Daney  <ddaney@avtrex.com>
2403
2404         * config/alpha/linux-unwind.h: Add exception clause to copyright.
2405         * config/i386/linux-unwind.h: Likewise.
2406         * config/ia64/linux-unwind.h: Likewise.
2407         * config/mips/linux-unwind.h: Likewise.
2408         * config/pa/linux-unwind.h: Likewise.
2409         * config/rs6000/linux-unwind.h: Likewise.
2410         * config/s390/linux-unwind.h: Likewise.
2411         * config/sh/linux-unwind.h: Likewise.
2412         * config/sparc/linux-unwind.h: Likewise.
2413
2414 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2415
2416         PR tree-optimization/17549
2417         * tree-outof-ssa.c (find_replaceable_in_bb): Do not allow
2418         TER to replace a DEF with its expression if the DEF and the
2419         rhs of the expression we replace into have the same root
2420         variable.
2421
2422 2005-02-10  Richard Sandiford  <rsandifo@redhat.com>
2423
2424         * config/mips/mips.md: Fix the placement of the match_scratch in the
2425         lea64 peephole2.
2426
2427 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2428
2429         * cse.c, tree-ssa-loop-ivopts.c, config/rs6000/linux-unwind.h:
2430         Fix comment typos.
2431
2432 2005-02-10  Zdenek Dvorak  <dvorakz@suse.cz>
2433
2434         * tree-ssa-loop-ivopts.c (determine_base_object): Ignore casts.
2435         (strip_offset): Handle addresses.
2436         (add_address_candidates): Use strip_offset.
2437         (difference_cost): Reflect strip_offset change.
2438         (force_var_cost, difference_cost): Strip nops.
2439
2440 2005-02-10  Kazu Hirata  <kazu@cs.umass.edu>
2441
2442         * df.h (DF_REF_MODE_CHANGE, DF_REF_MEM_OK): Remove.
2443
2444         * builtins.def, haifa-sched.c, libgcc2.c, libgcc2.h,
2445         tree-ssa-loop-ivcanon.c, tree-ssa-loop-niter.c,
2446         config/cris/cris-protos.h, config/cris/cris.c: Update
2447         copyright.
2448
2449 2005-02-10  Jeff Law  <law@redhat.com>
2450
2451         * tree-ssa-dom.c (thread_across_edge): Use xmalloc, not xcalloc.
2452         (lookup_avail_expr): Similarly.
2453
2454 2005-02-10  Richard Guenther  <rguenth@gcc.gnu.org>
2455
2456         * builtins.c (fold_builtin_powi): New function.
2457         (fold_builtin_1): Call it.
2458
2459 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2460
2461         PR documentation/19309
2462         * doc/cpp.texi: The __GNUC__ and related predefined macros
2463         are also defined for the "standalone" cpp.
2464         Some non-GCC compilers may also define __GNUC__.
2465
2466 2005-02-10  Jakub Jelinek  <jakub@redhat.com>
2467
2468         PR c/19342
2469         * c-typeck.c (common_type): New routine.  Old common_type renamed
2470         to...
2471         (c_common_type): ...this.
2472         (build_conditional_expr, build_binary_op): Use c_common_type instead
2473         of common_type.
2474
2475 2005-02-10  Steven Bosscher  <stevenb@suse.de>
2476
2477         * doc/md.texi: Replace @samp{length} with @code{length}.
2478
2479 2005-02-09  Zdenek Dvorak  <dvorakz@suse.cz>
2480
2481         PR tree-optimization/18687
2482         * tree-flow.h (find_loop_niter): Declare.
2483         * tree-ssa-loop-ivcanon.c (canonicalize_loop_induction_variables):
2484         Try using scev even for loops with more than one exit.
2485         * tree-ssa-loop-ivopts.c (struct loop_data): Removed niter field.
2486         (struct ivopts_data): Added niters field.
2487         (struct nfe_cache_elt): New.
2488         (nfe_hash, nfe_eq, niter_for_exit, niter_for_single_dom_exit): New
2489         functions.
2490         (tree_ssa_iv_optimize_init): Initialize niters cache.
2491         (determine_number_of_iterations): Removed.
2492         (find_induction_variables): Do not call determine_number_of_iterations.
2493         Access niters for single exit through niter_for_single_dom_exit.
2494         (add_iv_outer_candidates): Access niters for single exit through
2495         niter_for_single_dom_exit.
2496         (may_eliminate_iv): Take data argument.  Use niter_for_exit.  Do not use
2497         number_of_iterations_cond.
2498         (iv_period): New function.
2499         (determine_use_iv_cost_condition): Pass data to may_eliminate_iv.
2500         (may_replace_final_value): Take data argument.  Use
2501         niter_for_single_dom_exit.
2502         (determine_use_iv_cost_outer): Pass data to may_replace_final_value.
2503         (rewrite_use_compare): Pass data to may_eliminate_iv.
2504         (rewrite_use_outer): Pass data to may_replace_final_value.
2505         (free_loop_data): Clean up the niters cache.
2506         (tree_ssa_iv_optimize_finalize): Free the niters cache.
2507         (tree_ssa_iv_optimize_loop): Do not call loop_commit_inserts.
2508         * tree-ssa-loop-niter.c (find_loop_niter): New function.
2509         (find_loop_niter_by_eval): Use tree_int_cst_lt.
2510         (num_ending_zeros): Moved to tree.c.
2511         * tree.h (num_ending_zeros): Declare.
2512         * tree.c (num_ending_zeros): Moved from tree.c.
2513
2514 2005-02-09  Richard Henderson  <rth@redhat.com>
2515
2516         * builtins.c (DEF_BUILTIN): Add COND argument.
2517         * tree.h (DEF_BUILTIN): Likewise.
2518         * builtins.def (DEF_GCC_BUILTIN, DEF_LIB_BUILTIN, DEF_EXT_LIB_BUILTIN,
2519         DEF_C94_BUILTIN, DEF_C99_BUILTIN, DEF_C99_C90RES_BUILTIN): Update to
2520         match.
2521         (DEF_BUILTIN_STUB): New.
2522         (BUILT_IN_STACK_SAVE, BUILT_IN_STACK_RESTORE, BUILT_IN_INIT_TRAMPOLINE,
2523         BUILT_IN_ADJUST_TRAMPOLINE, BUILT_IN_NONLOCAL_GOTO,
2524         BUILT_IN_PROFILE_FUNC_ENTER, BUILT_IN_PROFILE_FUNC_EXIT): Use it.
2525         * c-common.c (DEF_BUILTIN): Add COND argument.
2526         * tree.c (local_define_builtin): New.
2527         (build_common_builtin_nodes): New.
2528
2529 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2530
2531         * fold-const.c (fold_strip_sign_ops): New function to simplify a
2532         floating point expression ignoring the sign of the result.
2533         (fold) <ABS_EXPR>: Use it to simplify fabs(x).
2534         (fold) <MULT_EXPR>: Use it to simplify x*x.
2535         * tree.h (fold_strip_sign_ops): Prototype here.
2536         * builtins.c (fold_builtin_copysign): Take an additional FNDECL
2537         argument.  Use fold_strip_sign_ops to simplify the first argument.
2538         (fold_builtin_pow):  Use fold_strip_sign_ops to simplify the
2539         first argument when the second argument is an even integer
2540         constant, but only with -funsafe_math_optimizations.
2541         (fold_builtin_1): Update call to fold_builtin_copysign.
2542
2543 2005-02-09  Ian Lance Taylor  <ian@airs.com>
2544
2545         PR middle-end/19583
2546         * gimple-low.c (try_catch_may_fallthru): In EH_FILTER_EXPR case,
2547         just check whether EH_FILTER_FAILURE falls through.
2548
2549 2005-02-09  Andreas Krebbel  <krebbel1@de.ibm.com>
2550
2551         * gcc/haifa-sched.c (schedule_block): Make queued sched group
2552         insns return to ready list in the next turn.
2553
2554 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2555
2556         PR middle-end/19402
2557         * builtins.def: New __builtin_powi[lf].
2558         * builtins.c (mathfn_built_in): Handle BUILT_IN_POWI.
2559         (expand_builtin_powi): New function.
2560         (expand_builtin): Dispatch to expand_builtin_powi.
2561         * libgcc2.h: Add prototypes for __builtin_powi[lf].
2562         * libgcc2.c: Add __builtin_powi[lf] implementation.
2563         * mklibgcc.in: Add __builtin_powi[lf] to lib2funcs.
2564         * optabs.h: Add powi_optab.
2565         * optabs.c (init_optabs): Initialize powi_optab.
2566         * doc/extend.texi: Document __builtin_powi[lf].
2567
2568 2005-02-09  Dorit Naishlos  <dorit@il.ibm.com>
2569
2570         * tree-vectorizer.c (vect_set_dump_settings): Check that dump_file
2571         exists.
2572
2573 2005-02-09  Richard Guenther  <rguenth@gcc.gnu.org>
2574
2575         PR middle-end/19854
2576         * fold-const.c (try_move_mult_to_index): Remove redundant
2577         type argument.  Create ADDR_EXPR with correct type.
2578         (fold): Update callers of try_move_mult_to_index.  Convert
2579         result to the appropriate type.
2580
2581 2005-02-09  Roger Sayle  <roger@eyesopen.com>
2582
2583         PR target/19597
2584         * config/avr/avr.c (default_rtx_costs): Delete.
2585         (avr_operand_rtx_cost): New function.
2586         (avr_rtx_costs): Completely rewrite.
2587
2588 2005-02-08  Hans-Peter Nilsson  <hp@axis.com>
2589
2590         PR target/19806
2591         * config/cris/cris.c (in_code): New variable.
2592         (cris_output_addr_const): Now a static function, a wrapper for
2593         output_addr_const.
2594         (cris_asm_output_symbol_ref): New function, broken out SYMBOL_REF
2595         case from old cris_output_addr_const.
2596         (cris_asm_output_label_ref): Similar for LABEL_REF.
2597         (cris_output_addr_const_extra): Similar for UNSPEC.
2598         * config/cris/cris.h (OUTPUT_ADDR_CONST_EXTRA)
2599         (ASM_OUTPUT_SYMBOL_REF, ASM_OUTPUT_LABEL_REF): Define.
2600         * config/cris/cris-protos.h (cris_output_addr_const): Remove
2601         declaration.
2602         (cris_asm_output_symbol_ref, cris_output_addr_const_extra)
2603         (cris_asm_output_label_ref): Declare.
2604
2605 2005-02-08  Paolo Bonzini  <bonzini@gnu.org>
2606
2607         PR preprocessor/19801
2608         * doc/cppinternals.texi (Conventions, Lexer, Files): Adjust
2609         filenames that changed when libcpp was moved to the toplevel.
2610
2611 2005-02-07  Roger Sayle  <roger@eyesopen.com>
2612
2613         * simplify-rtx.c (simplify_relational_operation_1): Avoid creating
2614         zero extensions of BImode operands.  Call lowpart_subreg instead
2615         of gen_lowpart_common and gen_lowpart_SUBREG.
2616
2617 2005-02-07  Nathanael Nerode  <neroden@gcc.gnu.org>
2618
2619         PR ada/19489
2620         * libada-mk.in: Use cc_for_cross_gnattools, not cc_set_by_configure.
2621         * configure.ac: Set cc_for_cross_gnattools.
2622         * configure: Regenerate.
2623
2624 2005-02-08  Alan Modra  <amodra@bigpond.net.au>
2625
2626         PR target/19803
2627         * predict.c (PROB_VERY_UNLIKELY): Use 1% instead of 10%.
2628
2629 2005-02-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
2630
2631         PR debug/19327
2632         * dbxout.c (dbxout_symbol) <FUNCTION_DECL>: Skip inline instance
2633         of nested functions.
2634
2635 2005-02-07  Jonathan Wakely  <redi@gcc.gnu.org>
2636
2637         * doc/extend.texi: Document deprecated extensions allowing
2638         static floating-point members to have initializers and allowing
2639         floating-point literals in integral constant expressions.
2640
2641 2005-02-07  Kazu Hirata  <kazu@cs.umass.edu>
2642
2643         * cfgcleanup.c, df.h, diagnostic.c, rtl.c, tree-vectorizer.h,
2644         config/darwin7.h, config/mips/mips.c,
2645         config/rs6000/altivec.md, config/rs6000/darwin-tramp.asm:
2646         Update copyright.
2647
2648         * cse.c: Update comments.
2649
2650 2005-02-07  Richard Guenther  <rguenth@gcc.gnu.org>
2651
2652         PR middle-end/19775
2653         * builtins.c (fold_builtin_sqrt): Transform
2654         sqrt(pow(x,y)) to pow(fabs(x),y*0.5), not
2655         pow(x,y*0.5).
2656
2657 2005-02-07  Leehod Baruch  <leehod@il.ibm.com>
2658             Dorit Naishlos  <dorit@il.ibm.com>
2659
2660         * doc/invoke.texi (ftree-vectorizer-verbose): New.
2661         * opts.c (OPT_ftree_vectorizer_verbose_): New case for switch.
2662         * common.opt (ftree-vectorizer-verbose): New Flag for the vectorizer
2663         was added.
2664         * tree.h (vect_set_verbosity_level): New extern function declaration
2665         added.
2666         * tree-vectorizer.h (verbosity_levels): New enum type.
2667         * tree-vectorizer.c (vect_debug_stats): Function removed.
2668         (vect_debug_details): Likewise.
2669         (vect_verbosity_level): Global variable was defined and initialized.
2670         (vect_dump): Global variable definition.
2671         (vect_print_dump_info): New function.
2672         (vect_set_dump_settings): New function.
2673         (vect_set_verbosity_level): New function.
2674         (vectorize_loops): Add call to vect_set_dump_settings.
2675
2676         (slpeel_make_loop_iterate_ntimes): Dump condition was changed.
2677         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2678         (slpeel_tree_peel_loop_to_edge): Likewise.
2679
2680         (vect_analyze_offset_expr): Call to vect_print_dump_info with
2681         appropriate verbosity level instead of call to vect_debug_details
2682         or vect_debug_stats.
2683         (vect_get_base_and_offset):
2684         (vect_create_addr_base_for_vector_ref):
2685         (get_vectype_for_scalar_type):
2686         (vect_create_data_ref_ptr):
2687         (vect_init_vector):
2688         (vect_get_vec_def_for_operand):
2689         (vect_finish_stmt_generation):
2690         (vectorizable_assignment):
2691         (vectorizable_operation):
2692         (vectorizable_store):
2693         (vectorizable_load):
2694         (vect_transform_stmt):
2695         (vect_update_ivs_after_vectorizer):
2696         (vect_do_peeling_for_loop_bound):
2697         (vect_update_inits_of_drs):
2698         (vect_do_peeling_for_alignment):
2699         (vect_transform_loop):
2700         (vect_is_simple_use):
2701         (vect_analyze_operations):
2702         (vect_is_simple_iv_evolution):
2703         (vect_analyze_scalar_cycles):
2704         (vect_analyze_data_ref_dependence):
2705         (vect_analyze_data_ref_dependences):
2706         (vect_compute_data_ref_alignment):
2707         (vect_enhance_data_refs_alignment):
2708         (vect_analyze_data_refs_alignment):
2709         (vect_analyze_data_ref_access):
2710         (vect_analyze_data_ref_accesses):
2711         (vect_analyze_pointer_ref_access):
2712         (vect_get_memtag_and_dr):
2713         (vect_analyze_data_refs):
2714         (vect_mark_relevant):
2715         (vect_stmt_relevant_p):
2716         (vect_mark_stmts_to_be_vectorized):
2717         (vect_can_advance_ivs_p):
2718         (vect_get_loop_niters):
2719         (vect_analyze_loop_form):
2720         (vect_analyze_loop):
2721         (vectorize_loops): Likewise.
2722
2723         (vect_do_peeling_for_loop_bound): Dump format slightly changed.
2724         (vect_update_inits_of_drs):
2725         (vect_do_peeling_for_alignment):
2726         (vect_transform_loop):
2727         (vect_analyze_operations):
2728         (vect_analyze_scalar_cycles):
2729         (vect_analyze_data_ref_dependences):
2730         (vect_analyze_data_refs_alignment):
2731         (vect_analyze_data_ref_accesses):
2732         (vect_analyze_data_refs):
2733         (vect_mark_stmts_to_be_vectorized):
2734         (vect_get_loop_niters):
2735         (vect_analyze_loop_form):
2736         (vect_analyze_loop): Likewise.
2737         (vect_mark_stmts_to_be_vectorized): Add call to print_generic_expr.
2738
2739 2005-02-07  Richard Sandiford  <rsandifo@redhat.com>
2740
2741         PR bootstrap/19796
2742         Revert:
2743         2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
2744         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
2745         either -ffast-math or -funsafe-math-optimizations is in use.
2746
2747         2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
2748         * config/mips/irix-csr.c: New file.
2749         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
2750         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
2751         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
2752         executables.
2753
2754 2005-02-07  Alexandre Oliva  <aoliva@redhat.com>
2755
2756         * config/mn10300/linux.h (LIB_SPEC, STARTFILE_SPEC): Remove
2757         redundant, incorrect definitions.
2758
2759         * config/frv/frv.md ("tls_indirect_call"): Turn into libcall-like
2760         expand.
2761         ("*tls_indirect_call"): New, reference hard regs directly.
2762         * config/frv/frv.c (gen_inlined_tls_plt): Adjust.
2763
2764 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2765
2766         * config/arm/rtems-elf.h (SUBTARGET_EXTRA_ASM_SPEC):
2767         Let !-mhard-float !-msoft-float imply -mfpu=softfpa.
2768
2769 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2770
2771         PR rtl-optimization/19800
2772         * simplify_rtx.c (simplify_relational_operation_1): Explicitly
2773         call gen_lowpart_common and gen_lowpart_SUBREG instead of calling
2774         gen_lowpart.
2775
2776 2005-02-07  Ralf Corsepius  <ralf.corsepius@rtems.org>
2777
2778         * config/m68k/t-rtems (MULTILIB_MATCHES): Let m528x match m5200.
2779
2780 2005-02-07  Joseph S. Myers  <joseph@codesourcery.com>
2781
2782         PR other/17135
2783         * doc/invoke.texi: Correct documentation of -freorder-functions.
2784
2785 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2786
2787         PR other/14402
2788         * doc/invoke.texi: Don't mention gccbug.
2789
2790 2005-02-06  Roger Sayle  <roger@eyesopen.com>
2791             Andrew Pinski  <pinskia@physics.uc.edu>
2792             Paolo Bonzini  <paolo.bonzini@lu.unisi.ch>
2793
2794         * simplify-rtx.c (simplify_relational_operation_1): Simplify
2795         (ne:SI (zero_extract:SI FOO (const_int 1) BAR) (const_int 0))
2796         into just (zero_extract:SI FOO (const_int 1) BAR).
2797
2798 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2799
2800         * doc/cpp.texi: Include gcc-common.texi.  Don't define gcctabopt
2801         macro locally.  Don't give last revision date.  Use GCC version
2802         number from gcc-common.texi.
2803         * doc/cppinternals.texi: Include gcc-common.texi.  Don't give last
2804         revision date.  Use GCC version number from gcc-common.texi.
2805         Describe being a library as current state rather than as 3.x
2806         history.
2807         * doc/gcc.texi: Remove last update date.
2808         * doc/gccint.texi: Likewise.  Update copyright dates.
2809         * doc/install.texi: Update copyright dates.
2810
2811 2005-02-06  Joseph S. Myers  <joseph@codesourcery.com>
2812
2813         PR other/7549
2814         * doc/invoke.texi: Mention for each option included in -Wall that
2815         it is included in -Wall.
2816         * doc/gcc.texi: Update copyright and last modification date.
2817
2818 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2819
2820         * tree-ssa-loop-ivopts.c (rewrite_use_nonlinear_expr): Do not add
2821         unnecessary cast to original induction variable increments.
2822
2823 2005-02-06  Zdenek Dvorak  <dvorakz@suse.cz>
2824
2825         PR tree-optimization/18219
2826         * tree-ssa-loop-ivopts.c (get_computation_at): Produce computations
2827         in distributed form.
2828
2829 2005-02-06  Richard Sandiford  <rsandifo@redhat.com>
2830
2831         * expmed.c (store_bit_field): Make the SUBREG code adjust bitnum.
2832         Set bitpos and offset later in the function.  Do nothing if the
2833         target is a register and if the bitfield lies completely outside
2834         that register.
2835         (extract_bit_field): Make the same SUBREG, bitpos and offset changes
2836         here.  Return an uninitialised register if the source value is stored
2837         in a register and the bitfield lies completely outside that register.
2838
2839 2005-02-06  Steven Bosscher  <stevenb@suse.de>
2840
2841         * df.c (df_insn_refs_record): Use XEXP to get the operand of a USE,
2842         not SET_DEST.
2843
2844 2005-02-06  Marcin Dalecki  <martin@dalecki.de>
2845
2846         * diagnostic.c (default_diagnostic_finalizer): Fix use of attribute.
2847
2848 2005-02-06  Geoffrey Keating  <geoffk@apple.com>
2849
2850         * config.gcc (*-*-darwin*): Separate darwin7 and darwin8 configs.
2851         * config/darwin8.h: New.
2852         * config/darwin7.h: Update comment.
2853
2854 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2855             Dorit Naishlos  <dorit@il.ibm.com>
2856
2857         * tree-vectorizer.h (LOC): New type.
2858         (UNKNOWN_LOC, EXPR_LOC, LOC_FILE, LOC_LINE): New macros.
2859         (loop_line_number): New field in struct _loop_vec_info.
2860         (LOOP_VINFO_LOC, LOOP_LOC): New macros.
2861
2862         * tree-vectorizer.c (input.h): Included.
2863         (find_loop_location): New function.
2864         (vect_debug_stats): Argument changed from loop to LOC. Computation of
2865         loop line number removed.
2866         (vect_debug_details): Likewise.
2867         (new_loop_vec_info): Initialize new field LOOP_VINFO_LOC.
2868
2869         (slpeel_make_loop_iterate_ntimes): Call find_loop_location. Argument in
2870         call to vect_debug_details/stats changed from loop to loop_loc.
2871         (slpeel_tree_duplicate_loop_to_edge_cfg): Likewise.
2872         (slpeel_tree_peel_loop_to_edge): Likewise.
2873
2874         (vect_analyze_offset_expr): Argument in call to vect_debug_details/stats
2875         changed from NULL to UNKNOWN_LOC.
2876         (vect_get_base_and_offset):
2877         (vect_create_addr_base_for_vector_ref):
2878         (get_vectype_for_scalar_type):
2879         (vect_create_data_ref_ptr):
2880         (vect_init_vector):
2881         (vect_get_vec_def_for_operand):
2882         (vect_finish_stmt_generation):
2883         (vectorizable_assignment):
2884         (vectorizable_operation):
2885         (vectorizable_store):
2886         (vectorizable_load):
2887         (vect_transform_stmt):
2888         (vect_update_ivs_after_vectorizer):
2889         (vect_do_peeling_for_loop_bound):
2890         (vect_do_peeling_for_alignment):
2891         (vect_transform_loop):
2892         (vect_is_simple_use):
2893         (vect_analyze_operations):
2894         (vect_is_simple_iv_evolution):
2895         (vect_analyze_scalar_cycles):
2896         (vect_analyze_data_ref_dependences):
2897         (vect_compute_data_ref_alignment):
2898         (vect_enhance_data_refs_alignment):
2899         (vect_analyze_data_ref_access):
2900         (vect_analyze_data_ref_accesses):
2901         (vect_analyze_pointer_ref_access):
2902         (vect_get_memtag_and_dr):
2903         (vect_analyze_data_refs):
2904         (vect_mark_relevant):
2905         (vect_stmt_relevant_p):
2906         (vect_mark_stmts_to_be_vectorized):
2907         (vect_can_advance_ivs_p):
2908         (vect_get_loop_niters):
2909         (vect_analyze_loop):
2910         (vectorize_loops): Likewise.
2911
2912         (vectorizable_load): Argument in call to vect_debug_details/stats
2913         changed from loop to LOOP_LOC (loop_vinfo).
2914         (vect_transform_loop):
2915         (vect_analyze_operations):
2916         (vect_analyze_scalar_cycles):
2917         (vect_analyze_data_ref_dependence):
2918         (vect_enhance_data_refs_alignment):
2919         (vect_analyze_data_ref_accesses):
2920         (vect_analyze_pointer_ref_access):
2921         (vect_analyze_data_refs):
2922         (vect_analyze_loop): Likewise.
2923
2924         (vect_analyze_loop_form): Argument in call to vect_debug_details/stats
2925         changed from loop to loop_loc.
2926
2927         (vect_enhance_data_refs_alignment): Removed unused variable loop.
2928
2929 2005-02-03  Leehod Baruch  <leehod@il.ibm.com>
2930             Dorit Naishlos  <dorit@il.ibm.com>
2931
2932         * tree-vectorizer.c (vect_analyze_data_ref_dependence): Function
2933         declaration added.
2934         (vect_analyze_data_ref_dependences): Likewise.
2935
2936         (vect_is_simple_use): Argument changed from loop structure to
2937         loop_vect_info structure.
2938         (vect_can_advance_ivs_p): Likewise.
2939         (vect_create_index_for_vector_ref): Likewise.
2940         (vect_update_ivs_after_vectorizer): Likewise.
2941         (new_stmt_vec_info): Likewise.
2942
2943         (new_loop_vec_info): Second argument in call to new_stmt_vec_info was
2944         changed from loop to loop_vinfo.
2945         (vect_create_data_ref_ptr): First argument in call to
2946         vect_create_index_for_vector_ref was changed from loop to loop_vinfo.
2947         (vectorizable_assignment): Second argument in call to vect_is_simple_use
2948         was changed from loop to loop_vinfo.
2949         (vectorizable_operation): Likewise.
2950         (vectorizable_store): Likewise.
2951         (vect_mark_stmts_to_be_vectorized): Likewise.
2952         (vect_do_peeling_for_loop_bound): First argument in call to
2953         vect_update_ivs_after_vectorizer was changed from loop to loop_vinfo.
2954         (vect_analyze_operations): Argument in call to vect_can_advance_ivs_p
2955         was changed from loop to loop_vinfo.
2956         (vect_analyze_data_ref_dependences): Third argument in call to
2957         vect_analyze_data_ref_dependence was changed from loop to loop_vinfo.
2958
2959         (vect_create_index_for_vector_ref): Get the loop from loop_vinfo.
2960         (vect_create_data_ref_ptr): Likewise.
2961         (vect_init_vector): Likewise.
2962         (vect_get_vec_def_for_operand): Likewise.
2963         (vectorizable_assignment): Likewise.
2964         (vectorizable_operation): Likewise.
2965         (vectorizable_store): Likewise.
2966         (vectorizable_load): Likewise.
2967         (vect_update_ivs_after_vectorizer): Likewise.
2968         (vect_is_simple_use): Likewise.
2969         (vect_analyze_data_ref_dependence): Likewise.
2970         (vect_analyze_pointer_ref_access): Likewise.
2971         (vect_can_advance_ivs_p): Likewise.
2972
2973         * tree-vectorizer.h: (_loop_vec_info): Definition and macros moved
2974         before _stmt_vec_info.
2975         (_stmt_vec_info): Loop field replaced by loop_vec_info.
2976         (STMT_VINFO_LOOP): Replaced with STMT_VINFO_LOOP_VINFO.
2977         (new_stmt_vec_info): Argument changed from loop structure to
2978         loop_vect_info structure
2979
2980         (vect_analyze_data_ref_dependences): Unnecessary line was removed.
2981         (vect_analyze_offset_expr): Avoid 80 columns overflow.
2982         (vect_create_addr_base_for_vector_ref): Likewise.
2983         (vect_analyze_pointer_ref_access): Likewise.
2984
2985 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2986
2987         PR tree-opt/19768
2988         * tree-ssa-dse.c (fix_phi_uses): Update the occurs in abnormal
2989         phi flag if the phi is abnormal.
2990
2991 2005-02-03  Andrew Pinski  <pinskia@physics.uc.edu>
2992
2993         PR tree-opt/19736
2994         * tree-ssa.c (replace_immediate_uses): Update the immediate_uses
2995         information for the new statement.
2996
2997 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
2998
2999         PR driver/19117
3000         * gcc.c (main): Include the target in -v output.
3001
3002 2005-02-03  Alexandre Oliva  <aoliva@redhat.com>
3003
3004         * combine.c (simplify_comparison, case SIGN_EXTEND, ZERO_EXTEND):
3005         Do not drop the extend if we'd have to add a paradoxical subreg
3006         later.  Include optabs.h and insn-codes.h.
3007         * Makefile.in (combine.o): Depend on $(OPTABS_H).
3008
3009 2005-02-02  Roger Sayle  <roger@eyesopen.com>
3010
3011         PR middle-end/19405
3012         * real.h (REAL_MODE_FORMAT_COMPOSITE_P): New macro.
3013         * fold-const.c (const_binop): Avoid constant folding floating
3014         point operations in modes that use composite representations.
3015         * simplify-rtx.c (simplify_binary_operation): Likewise.
3016
3017 2005-02-02  Geoffrey Keating  <geoffk@apple.com>
3018
3019         * config/rs6000/altivec.md (altivec_dst): Make the first operand
3020         a REG, not a MEM.
3021         (altivec_dstt): Likewise.
3022         (altivec_dstst): Likewise.
3023         (altivec_dststt): Likewise.
3024         * config/rs6000/rs6000.c (altivec_expand_dst_builtin): Adjust creation
3025         of first operand.
3026
3027 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3028
3029         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Copy
3030         EXPR_LOCUS from orig_cond to the new cond_stmt.
3031         (vect_finish_stmt_generation): Copy EXPR_LOCUS from stmt to
3032         the new vec_stmt.
3033
3034 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3035
3036         * tree-vectorizer.c (slpeel_make_loop_iterate_ntimes): Call
3037         standard_iv_increment_position. Remove call to bsi_next
3038         (no need to bump the iterator anymore).
3039         (vect_create_index_for_vector_ref): Call
3040         standard_iv_increment_position. Remove second function argument.
3041         (vect_finish_stmt_generation): Remove call to bsi_next
3042         (no need to bump the iterator anymore).
3043         (vect_create_data_ref_ptr): Remove second argument (bsi) in call
3044         to vect_create_index_for_vector_ref.
3045
3046 2005-02-03  Dorit Naishlos  <dorit@il.ibm.com>
3047
3048         * tree-vectorizer.c (vect_mark_stmts_to_be_vectorized): Check if
3049         phis are used out of the loop.
3050
3051 2005-02-03  Joseph S. Myers  <joseph@codesourcery.com>
3052
3053         PR c/17807
3054         * c-decl.c (undef_nested_function): New variable.
3055         (pop_scope): Diagnose undefined nested functions.
3056         (finish_function): Don't attempt cgraph processing or genericizing
3057         if current top-level function contained an undefined nested
3058         function.  Reset undef_nested_function at the end of a top-level
3059         function.
3060
3061 2005-02-02  Zdenek Dvorak  <dvorakz@suse.cz>
3062
3063         * tree.c (build_int_cst_type): Take sign of the value into account
3064         when deciding whether sign extend the value.
3065
3066 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3067
3068         PR c/18502
3069         * gcc.c (cpp_unique_options): Remove %{trigraphs}.
3070         (cpp_options, cc1_options): Change %{std*&ansi} to
3071         %{std*&ansi&trigraphs}.
3072
3073 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3074
3075         * cse.c: Update comments.
3076
3077 2005-02-02  Aldy Hernandez  <aldyh@redhat.com>
3078
3079         * config/rs6000/rs6000.c (rs6000_spe_function_arg): Multi-reg
3080         arguments go on the stack.  Do not put complex doubles in odd/even
3081         pairs.
3082
3083 2005-02-02  Steven Bosscher  <stevenb@suse.de>
3084
3085         * doc/invoke.texi: Update the options enabled at -O1, -O2,
3086         and -O3.  Update the documentation for -fgcse-sm, -fgcse-las,
3087         -ftree-pre, and -fthread-jumps.
3088
3089 2005-02-02  Richard Sandiford  <rsandifo@redhat.com>
3090
3091         PR tree-optimization/19578
3092         * tree-flow.h (modified_noreturn_calls): Declare.
3093         (noreturn_call_p): Declare.
3094         * tree-flow-inline.h (noreturn_call_p): New function.
3095         (modify_stmt): Add modified noreturn calls to modified_noreturn_calls.
3096         * tree-cfg.c (modified_noreturn_calls): New variable.
3097         (cleanup_control_flow): Use noreturn_call_p.  Split basic blocks
3098         that contain a mid-block noreturn call.
3099         * tree-ssa.c (delete_tree_ssa): Clear modified_noreturn_calls.
3100
3101 2005-02-02  Kazu Hirata  <kazu@cs.umass.edu>
3102
3103         * df.c (df_def_record_1, df_uses_record): Don't use
3104         DF_FOR_REGALLOC.
3105         * df.h (DF_FOR_REGALLOC): Remove.
3106
3107 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3108
3109         PR c/19435
3110         * c-typeck.c (really_start_incremental_init): Reset
3111         constructor_max_index for arrays of incomplete type.
3112
3113 2005-02-02  Jeff Law  <law@redhat.com>
3114
3115         * gcse.c (struct reg_set): Store the block index where the register
3116         was set rather than the setting insn.
3117         (record_one_set, compute_transp): Corresponding changes.
3118         (pre_insert_copy_insn): Do not call replace_one_set.
3119         (replace_one_set): Remove.
3120
3121 2005-02-02  Joseph S. Myers  <joseph@codesourcery.com>
3122
3123         PR other/15514
3124         * doc/gcov.texi: Fix typo.
3125
3126 2005-02-01  Richard Henderson  <rth@redhat.com
3127
3128         PR target/19680
3129         * config/i386/i386.h (MODES_TIEABLE_P): Use ix86_modes_tieable_p.
3130         * config/i386/i386.c (ix86_hard_regno_mode_ok): Change return
3131         type to bool.
3132         (ix86_tieable_integer_mode_p, ix86_modes_tieable_p): New.
3133         * config/i386/i386-protos.h: Update.
3134
3135 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3136
3137         PR tree-optimization/19217
3138         * tree-cfg.c (verify_expr): Use the data field to see if TP was
3139         seen inside a PHI node.  Do not do the ADDR_EXPR check if it was.
3140         (verify_stmts): Pass (void*)1 as data to verify_expr to signal
3141         that it is walking a PHI node.
3142
3143 2005-02-01  Joseph S. Myers  <joseph@codesourcery.com>
3144
3145         * doc/extend.texi (Nested Functions): Update.
3146
3147 2005-02-01  Richard Henderson  <rth@redhat.com>
3148
3149         PR 19696
3150         * optabs.c (expand_copysign_absneg): Export.
3151         * optabs.h (expand_copysign_absneg): Declare.
3152         * config/rs6000/rs6000.md (copysigntf3): New.
3153
3154 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3155
3156         PR tree-optimization/19633
3157         * tree-flow.h (struct ptr_info_def): Add field 'pt_null'.
3158         * tree-ssa-alias.c (init_alias_info): Initialize.
3159         (merge_pointed_to_info): Set.
3160         (add_pointed_to_expr): Set pt_null if EXPR is a NULL pointer.
3161         (dump_points_to_info_for): Show value of pt_null.
3162         (struct count_ptr_d): Declare.
3163         (find_ptr_dereference): Remove.
3164         (ptr_is_dereferenced_by): Remove.
3165         (count_ptr_derefs): New local function.
3166         (count_uses_and_derefs): New local function.
3167         (compute_points_to_and_addr_escape): Call it.  If the number
3168         of dereferences is greater than zero, mark the pointer as
3169         dereferenced.  If there are fewer dereferences than uses of
3170         the pointer, the pointer's value escapes.
3171
3172 2005-02-01  Diego Novillo  <dnovillo@redhat.com>
3173
3174         PR tree-optimization/19670
3175         * tree-ssa.c (verify_ssa_name): Don't set TREE_VISITED
3176         here...
3177         (verify_use): ... set it here, instead.
3178
3179 2005-02-01  Janis Johnson  <janis187@us.ibm.com>
3180
3181         * doc/sourcebuild.texi (Test directives): Fix formatting.
3182
3183         * doc/sourcebuild.texi (Test directives): Describe selector
3184         expressions.
3185
3186 2005-02-01  Segher Boessenkool  <segher@kernel.crashing.org>
3187
3188         * config.gcc (powerpc64-*-linux*): Default to -m64 also for
3189         specific 64-bit CPUs.
3190
3191 2005-02-01  Richard Earnshaw  <rearnsha@arm.com>
3192
3193         PR target/16201
3194         * arm.c (arm_eliminable_register): New function.
3195         (adjacent_mem_locations): Don't allow eliminable registers.  Use
3196         HOST_WIDE_INT for address offsets.
3197         * arm-protos.h (arm_eliminable_register): Add prototype.
3198
3199 2005-02-01  Steven Bosscher  <stevenb@suse.de>
3200
3201         PR optimization/15242
3202         * params.def (PARAM_MAX_GOTO_DUPLICATION_INSNS): New param.
3203         * basic-block.h (duplicate_computed_gotos): Add prototype.
3204         * bb-reorder.c (duplicate_computed_gotos): New function to
3205         duplicate sufficiently small blocks ending in a computed jump.
3206         * passes.c (rest_of_compilation): Call duplicate_computed_gotos
3207         if not optimizing for size.
3208         * cfgcleanup.c (try_crossjump_bb): If not optimizing for size,
3209         never do tail merging for blocks ending in a computed jump.
3210         * doc/invoke.texi: Document the max-goto-duplication-insns param.
3211
3212 2005-02-01  Eric Botcazou  <ebotcazou@libertysurf.fr>
3213
3214         Patch from Richard Sandiford <rsandifo@redhat.com>
3215         * reload1.c (choose_reload_regs): Prevent the find_equiv_reg() code
3216         from inheriting a subreg equivalence with a non-spill register.
3217
3218         * tree.h (DECL_FUNCTION_CODE): Document that it is overloaded.
3219
3220 2005-02-01  Alexandre Oliva  <aoliva@redhat.com>
3221
3222         * config/frv/frv.c (movcc_fp_destination_operand): New.
3223         (gpr_or_memory_operand): Fix typo in comment.
3224         (gpr_or_memory_operand_with_scratch): New.
3225         * config/frv/frv.h (PREDICATE_CODES): Add the two new predicates.
3226         * config/frv/frv.md (movcc_fp, movcc_fp_internal): Use
3227         movcc_fp_destination_operand.
3228         (reload_incc_fp): Use gpr_or_memory_operand_with_scratch.
3229         Legitimize memory addresses using a scratch register.
3230
3231 2005-01-31  Jeff Law  <law@redhat.com>
3232
3233         * tree-into-ssa.c (mark_def_sites_global_data): Make KILLS
3234         bitmap a sparse bitmap instead of a simple bitmap.
3235         (mark_def_sites_initialize_block):  Corresponding changes.
3236         (ssa_mark_def_sites_initialize_block): Likewise.
3237         (ssa_mark_phi_uses): Likewise.
3238         (mark_def_site, ssa_mark_def_sites): Likewise.
3239         (mark_def_site_blocks): Likewise.
3240         (rewrite_ssa_into_ssa): Likewise.
3241
3242         * tree-ssa-dom.c (record_cond): Pass correct variable type
3243         for last argument to htab_find_slot_with_hash.
3244
3245         * fold-const.c (fold, case CEIL_MOD_EXPR): Do not lose side
3246         effects when optimizing 0 % X.  Do not try to optimize X % 0.
3247
3248 2005-01-31  James E. Wilson  <wilson@specifixinc.com>
3249
3250         * config/ia64/itanium1.md (1_scall bypass): Change 2_mmalua to
3251         1_mmalua.
3252
3253 2005-02-01  Eric Christopher  <echristo@redhat.com>
3254
3255         * config/mips/mips.c (override_options): Warn if -mint64
3256         is used.
3257         * doc/invoke.texi (MIPS Options): Document that -mint64 is
3258         deprecated.
3259
3260 2005-02-01  Kazu Hirata  <kazu@cs.umass.edu>
3261
3262         * cse.c (cse_reg_info): Remove hash_next, next, regno.  Add
3263         timestamp.
3264         (cse_reg_info_list, cse_reg_info_list_free, REGHASH_SHIFT,
3265         REGHASH_SIZE, REGHASH_MASK, reg_hash, REGHASH_FN,
3266         cached_cse_reg_info, GET_CSE_REG_INFO): Remove.
3267         (cached_regno): Initialize to INVALID_REGNUM.
3268         (cse_reg_info_table_size,
3269         cse_reg_info_table_first_uninitialized,
3270         cse_reg_info_timestamp): New.
3271         (REG_TICK, REG_IN_TABLE, SUBREG_TICKED, REG_QTY): Use
3272         get_cse_reg_info.
3273         (init_cse_reg_info, get_cse_reg_info_1): New.
3274         (get_cse_reg_info): Cache the last look-up.
3275         (new_basic_block): Update the code to clear mappings from
3276         registers to cse_reg_info entries.
3277         (cse_main): Call init_cse_reg_info.
3278
3279         * cse.c (get_cse_reg_info): Update a comment.
3280
3281 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3282
3283         PR c/19333
3284         * c-decl.c (start_decl): Do not warn about arrays of elements with
3285         an incomplete type here.
3286         (grokdeclarator): Do it here by making a pedwarn an error.
3287         * c-typeck.c (push_init_level): If there were previous errors with
3288         the constructor type, do not warn about braces for initializers.
3289         (process_init_element): Likewise for excess initializer elements.
3290
3291 2005-01-31  Kazu Hirata  <kazu@cs.umass.edu>
3292
3293         * cse.c (delete_trivially_dead_insn): Don't iterate.
3294
3295 2005-01-31  Andrew Pinski  <pinskia@physics.uc.edu>
3296
3297         * config/rs6000/rs6000.md (copysignsf3): New expand.
3298         (copysigndf3): Likewise.
3299
3300 2005-01-31  Steven Bosscher  <stevenb@suse.de>
3301
3302         * recog.c (constrain_operands): Only look for earlyclobber operand
3303         conflicts if an '&' constraint was seen.
3304
3305 2005-01-31  Marc Espie <espie@openbsd.org>
3306
3307         * config.gcc: Don't include embedded systems fragment, switches default
3308         debugging format to ELF.
3309         * config/i386/openbsdelf.h: Add DBX_REGISTER_NUMBER since we no
3310         longer pick it up there.
3311
3312 2005-01-31  Dale Johannesen  <dalej@apple.com>
3313
3314         * doc/extend.texi (nested functions): Fix linkage description.
3315         Clarify that static is not allowed.
3316
3317 2005-01-31  Dale Johannesen  <dalej@apple.com>
3318
3319         * config/rs6000/darwin.md (movsf_low_di):  Make work.
3320         (movdf_low_di):  Make work.
3321
3322 2005-01-31  Dale Johannesen  <dalej@apple.com>
3323
3324         * config/rs6000/darwin-tramp.asm (__trampoline_setup):
3325         Make work for 64 bit.
3326
3327 2005-01-31  Roger Sayle  <roger@eyesopen.com>
3328             Dale Johannesen  <dalej@apple.com>
3329
3330         PR middle-end/19650
3331         * fold-const.c (fold_binary_op_with_conditional_arg):
3332         Make types match original operands, before STRIP_NOPS.
3333
3334 2005-01-31  Alan Modra  <amodra@bigpond.net.au>
3335
3336         * config/rs6000/linux-unwind.h (struct gcc_vregs): New.
3337         (struct gcc_regs): Rename from gcc_pt_regs.  Add more regs.
3338         (struct gcc_sigcontext): Delete.  Merge contents to..
3339         (struct gcc_ucontext): ..here.
3340         (get_sigcontext): Delete.
3341         (get_regs): New function, like get_sigcontext but return regs ptr.
3342         64-bit version finds regs from r1 to support vdso.
3343         (ppc_linux_aux_vector): New function.
3344         (ppc_fallback_frame_state): Modify for get_regs.  Restore fprs
3345         and vector regs.
3346
3347 2005-01-31  Ira Rosen  <irar@il.ibm.com>
3348
3349         * tree-vectorizer.c (vect_analyze_offset_expr): Use ssizetype instead
3350         sizetype.
3351         (vect_get_base_and_offset): Use ssizetype instead sizetype. Remove
3352         redundant fold. Fix misalignment for MINUS_EXPR.
3353         (vect_compute_data_ref_alignment): Use ssizetype instead sizetype.
3354         (vect_analyze_pointer_ref_access): Likewise.
3355         (vect_get_memtag_and_dr): Likewise.
3356
3357 2005-01-31  Richard Henderson  <rth@redhat.com>
3358
3359         * config/i386/i386.c (absnegsf2_mixed): Remove all of the # hackery.
3360         (absnegsf2_sse, absnegsf2_i387, absnegdf2_mixed, absnegdf2_sse,
3361         absnegdf2_i387, absnegxf2_i387): Likewise.
3362
3363 2005-01-31  Richard Henderson  <rth@redhat.com>
3364
3365         PR 19696
3366         * optabs.c (expand_copysign_absneg): New.
3367         (expand_copysign_bit): Split out from ...
3368         (expand_copysign): ... here.  Use expand_copysign_absneg.
3369
3370 2005-01-30  Roger Sayle  <roger@eyesopen.com>
3371
3372         PR middle-end/19697
3373         * config/pa/pa.md (anddi3, iordi3): On HPPA64, disallow an integer
3374         constant as the second operand and a register as the third.
3375
3376 2005-01-31  Danny Smith  <dannysmith@users.sourceforge.net>
3377
3378         PR target/19704
3379         * config/i386/i386.c (ix86_function_ok_for_sibcall):  Also check
3380         that dllimport'd functions do not use all call-clobbered registers
3381         to pass parameters.
3382
3383 2005-01-30  Richard Henderson  <rth@redhat.com>
3384
3385         PR 19696
3386         * optabs.c (expand_absneg_bit): Split out from expand_unop and
3387         expand_abs_nojump and generalize.  Use operand_subword and
3388         emit_no_conflict_block.  Support large modes.
3389         (expand_abs_nojump): Use it.  Use HONOR_SIGNED_ZEROS to fall
3390         back to maximum.
3391         (expand_unop): Likewise.  Use HONOR_SIGNED_ZEROS to fall back
3392         negation to subtraction.
3393         (expand_copysign): Check that the format has signed zeros.
3394         Use operand_subword and emit_no_conflict_block.  Support large modes.
3395
3396 2005-01-30  Daniel Berlin  <dberlin@dberlin.org>
3397
3398         Fix PR tree-optimization/19624
3399
3400         * Makefile.in (tree-ssa-pre.o): Add CFGLOOP_H.
3401         * tree-ssa-pre.c: Add cfgloop.h.
3402         Update comment.
3403         (pre_stats): New member, constified.
3404         (inserted_exprs): New static variable.
3405         (NECESSARY): New macro.
3406         (create_expression_by_pieces): Fold the expression, and
3407         mark it as defaulting to not necessary. Also put in
3408         inserted_exprs.
3409         (fully_constant_expression): New function.
3410         (insert_into_preds_of_block): Modify to not insert phis when we
3411         are playing with induction variables.
3412         Push phis onto the inserted_exprs vector, and mark them as not
3413         necessary by default.
3414         (insert_aux): Call fully_constant_expression on eprime.
3415         If all edges produce the same value, mark it constant.
3416         (mark_operand_necessary): New function.
3417         (remove_dead_inserted_code): New function.
3418         (init_pre): Init loop optimizer to get loop info.
3419         (fini_pre): Free loop_optimizer, and inserted_exprs vec.
3420         (execute_pre): Commit edge inserts, then remove dead code.
3421
3422 2005-01-30  Richard Henderson  <rth@redhat.com>
3423
3424         * rtl.c (rtx_equal_p): No early exit for CONST_VECTOR.
3425         * varasm.c (const_rtx_hash_1): Handle CONST_VECTOR.
3426
3427 2005-01-30  Richard Henderson  <rth@redhat.com>
3428
3429         PR target/19700
3430         * config/i386/i386.c (ix86_expand_copysign): New.
3431         (ix86_split_copysign_const): New.
3432         (ix86_split_copysign_var): Rename from ix86_split_copysign,
3433         rearrange op1/nmask operands.
3434         * config/i386/i386-protos.h: Update.
3435         * config/i386/i386.md (copysignsf3): Use ix86_expand_copysign.
3436         (copysigndf3): Likewise.
3437         (copysignsf3_const, copysigndf3_const): New.
3438         (copysignsf3_var): Rename from copysignsf3, split out splitter
3439         and fix split predicate for X constraint.
3440         (copysigndf3_var): Similarly.
3441
3442 2005-01-30  Kazu Hirata  <kazu@cs.umass.edu>
3443
3444         * optabs.c, doc/c-tree.texi, doc/install.texi, doc/md.texi,
3445         doc/passes.texi, doc/rtl.texi, doc/sourcebuild.texi,
3446         doc/tm.texi, doc/tree-ssa.texi: Update copyright.
3447
3448 2005-01-29  Richard Henderson  <rth@redhat.com>
3449
3450         PR target/19690
3451         * config/i386/i386.md (movdf_nointeger, movdf_integer): Fix ordering
3452         of # and * in constraints.
3453
3454 2005-01-29  Richard Henderson  <rth@redhat.com>
3455
3456         PR middle-end/19689
3457         * expr.c (store_field): Don't strip sub-mode cast when the input
3458         data is even smaller.
3459
3460 2005-01-29  Richard Henderson  <rth@redhat.com>
3461
3462         PR middle-end/19687
3463         * expr.c (categorize_ctor_elements_1): Check for CONSTRUCTOR of a
3464         union being empty.
3465
3466 2005-01-29  Richard Henderson  <rth@redhat.com>
3467
3468         * combine.c (make_field_assignment): Fix argument order
3469         to gen_int_mode.
3470
3471 2005-01-29  Richard Guenther <richard.guenther@uni-tuebingen.de>
3472
3473         PR tree-optimization/15791
3474         * fold-const.c (extract_array_ref): New function.
3475         (fold): Fold comparisons between &a[i] and &a[j] or
3476         semantically equivalent trees.
3477
3478 2005-01-29  Jeff Law  <law@redhat.com>
3479
3480         * gcse.c (insert_expr_in_table): Revamp handling of available
3481         and anticipatable occurrence lists to avoid unnecessary list
3482         walking.
3483         (insert_set_in_table): Similarly.
3484
3485 2005-01-29  Joseph S. Myers  <joseph@codesourcery.com>
3486
3487         * c-common.c (fix_string_type): Just use c_build_qualified_type to
3488         build string type.
3489         (c_build_qualified_type): Build qualified array types with
3490         TYPE_MAIN_VARIANT pointing to corresponding unqualified type.
3491         * c-decl.c (c_make_fname_decl): Build unqualified array type
3492         before qualified type.
3493         (grokdeclarator): Use TYPE_MAIN_VARIANT of typedef type if element
3494         type is qualified, not just if type itself is.  Don't apply
3495         qualifiers to array type when declarator is processed.  Apply
3496         qualifiers to field type whether or not it is an array type.
3497         Don't handle array types specially for applying qualifiers to
3498         variables.
3499         * c-typeck.c (composite_type): Build unqualified element type and
3500         array type when forming composite of array types.
3501         (common_pointer_type, comptypes, comp_target_types,
3502         type_lists_compatible_p, build_indirect_ref, build_array_ref,
3503         convert_for_assignment): Don't apply TYPE_MAIN_VARIANT to array
3504         types.
3505         (type_lists_compatible_p): Cache TREE_VALUE (args1) and TREE_VALUE
3506         (args2) in variables a1 and a2.
3507
3508 2005-01-29  Kazu Hirata  <kazu@cs.umass.edu>
3509
3510         * cse.c (n_elements_made, max_elements_made): Remove.
3511         (insert): Don't touch n_elements_made.
3512         (cse_main): Don't touch n_elements_made or max_elements_made.
3513
3514 2005-01-28  Stephane Carrez  <stcarrez@nerim.fr>
3515
3516         PR target/15384
3517         * config/m68hc11/t-m68hc11-gas (dp-bit.c): Fix typo causing a
3518         configuration part of dp-bit.c to be lost.
3519
3520 2005-01-28  Roger Sayle  <roger@eyesopen.com>
3521
3522         * expmed.c (expand_mult_highpart_optab): When attempting to use
3523         a non-widening multiplication in a wider mode, the operands need
3524         to be converted (zero or sign extended) to that mode.
3525
3526 2005-01-28  Ian Lance Taylor  <ian@airs.com>
3527
3528         PR middle-end/16558
3529         PR middle-end/19583
3530         * gimple-low.c (block_may_fallthru): TRY_FINALLY_EXPR only falls
3531         through if both operands fall through.
3532
3533 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3534
3535         * cse.c (fold_rtx) <PC>: Don't optimize.
3536
3537 2005-01-28  Jeff Law  <law@redhat.com>
3538
3539         * fold-const.c (fold, case CEIL_MOD_EXPR): Optimize 0 % X.
3540         (case FLOOR_MOD_EXPR, ROUND_MOD_EXPR, TRUNC_MOD_EXPR): Similarly.
3541
3542 2005-01-28  Kazu Hirata  <kazu@cs.umass.edu>
3543
3544         * cse.c (cse_reg_info_free_list, cse_reg_info_used_list,
3545         cse_reg_info_used_list_end): Remove.
3546         (cse_reg_info_list, cse_reg_info_list_free): New.
3547         (get_cse_reg_info): When allocating an instance of
3548         cse_reg_info, add it to the beginning of the cse_reg_info_list
3549         list.  Remove code to maintain cse_reg_info_used_list.
3550         (new_basic_block): Reset the free list to the beginning of
3551         cse_reg_info_list.
3552
3553 2005-01-28  Richard Sandiford  <rsandifo@redhat.com>
3554
3555         * config/frv/frv.c (bdesc_2arg): Remove __MDPACKH.
3556         (frv_init_builtins): Change its prototype to take 4 uhalf arguments.
3557         (frv_expand_mdpackh_builtin): New function.
3558         (frv_expand_builtin): Use it to expand __MDPACKH.
3559         * doc/extend.texi (__MDPACKH): Update documentation.
3560
3561 2005-01-28  Uros Bizjak  <uros@kss-loka.si>
3562
3563         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use
3564         SSE_FLOAT_MODE_P for use_sse computation.
3565
3566 2005-01-28  Ralf Corsepius  <ralf.corsepius@rtems.org>
3567
3568         PR target/19663
3569         * config/sparc/rtemself.h (LINK_GCC_C_SEQUENCE_SPEC): undefine.
3570
3571 2005-01-27  Richard Henderson  <rth@redhat.com>
3572
3573         * builtins.c (expand_builtin_copysign): New.
3574         (expand_builtin): Call it.
3575         * genopinit.c (optabs): Add copysign_optab.
3576         * optabs.c (init_optabs): Initialize it.
3577         (expand_copysign): New.
3578         * optabs.h (OTI_copysign, copysign_optab): New.
3579         (expand_copysign): Declare.
3580
3581         * config/alpha/alpha.md (UNSPEC_COPYSIGN): New.
3582         (copysignsf3, ncopysignsf3, copysigndf3, ncopysigndf3): New.
3583
3584         * config/i386/i386.c (ix86_build_signbit_mask): Split from ...
3585         (ix86_expand_fp_absneg_operator): ... here.
3586         (ix86_split_copysign): New.
3587         * config/i386/i386-protos.h: Update.
3588         * config/i386/i386.md (UNSPEC_COPYSIGN): New.
3589         (copysignsf3, copysigndf3): New.
3590
3591         * config/ia64/ia64.md (UNSPEC_COPYSIGN): New.
3592         (copysignsf3, ncopysignsf3): New.
3593         (copysigndf3, ncopysigndf3): New.
3594         (copysignxf3, ncopysignxf3): New.
3595         * config/ia64/ia64.c (rtx_needs_barrier): Handle UNSPEC_COPYSIGN.
3596
3597 2005-01-27  Arend Bayer  <arend.bayer@web.de>
3598             Kazu Hirata  <kazu@cs.umass.edu>
3599
3600         * cse.c: (find_best_addr): Don't call copy_rtx before calling
3601         fold_rtx.  Save cost recomputation if fold_rtx did nothing.
3602         (fold_rtx) <ASM_OPERANDS>: Don't do anything if INSN is
3603         NULL_RTX.
3604
3605 2005-01-27  Jeff Law  <law@redhat.com>
3606
3607         * tree-into-ssa.c (ssa_rewrite_initialize_block): Do not register
3608         definitions of SSA_NAMEs which are not being rewritten.
3609         (rewrite_ssa_into_ssa): Only initialize the current definition
3610         of an SSA_NAME if that SSA_NAME has been marked for rewriting.
3611         If checking is enabled, assert that SSA_NAME_AUX is clear for all
3612         SSA_NAMEs before returning.
3613
3614 2005-01-27  Kazu Hirata  <kazu@cs.umass.edu>
3615
3616         * c-common.def, c-dump.c, c-gimplify.c, c-objc-common.c,
3617         cfgexpand.c, dbxout.c, function.h, opts.c, tree-flow-inline.h,
3618         tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-tailcall.c,
3619         config/avr/avr.md, config/cris/aout.h, config/cris/cris.h,
3620         config/mips/iris6.h, config/sh/sh.c: Update copyright.
3621
3622 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3623
3624         PR middle-end/17278
3625         * opts.c (decode_options): Move flag_thread_jumps from -O1 and
3626         higher to -O2 and higher.  Likewise for tree PRE.
3627         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Only iterate at -O2
3628         and better.
3629
3630 2005-01-27  Ian Lance Taylor  <ian@airs.com>
3631
3632         PR middle-end/19583
3633         * gimple-low.c (try_catch_may_fallthru): New static function.
3634         (block_may_fallthru): Handle TRY_CATCH_EXPR.
3635         * tree-inline.c (expand_call_inline): Don't warn about reaching
3636         the end of a non-void function being inlined if the function uses
3637         a return slot.
3638
3639 2005-01-27  Jakub Jelinek  <jakub@redhat.com>
3640
3641         * config/i386/i386.h (CALL_USED_REGISTERS): Fix comment pastos.
3642
3643         PR c/18946
3644         * c-decl.c (warn_if_shadowing): Handle old_decl error_mark_node.
3645         (pushdecl): Only use DECL_FILE_SCOPE_P if DECL_P.
3646         (implicitly_declare): Handle error_mark_node.
3647
3648 2005-01-27  Richard Henderson  <rth@redhat.com>
3649
3650         PR tree-opt/14329
3651         * tree.h (struct tree_decl): Add debug_expr_is_from.
3652         (DECL_DEBUG_EXPR_IS_FROM): New.
3653         (DECL_DEBUG_EXPR): Rename from DECL_DEBUG_ALIAS_OF.
3654         * dwarf2out.c (dwarf2out_var_location): Update to match.
3655         * tree-outof-ssa.c (create_temp): Likewise.
3656         * var-tracking.c (track_expr_p): Likewise.
3657         * tree-sra.c (instantiate_element): Set DECL_DEBUG_EXPR.
3658         * c-objc-common.c (c_tree_printer) <'D'>: Handle DECL_DEBUG_EXPR.
3659         * toplev.c (default_tree_printer): Likewise.
3660
3661 2005-01-27  Alexandre Oliva  <aoliva@redhat.com>
3662
3663         * config/frv/frv.c (frv_class_likely_spilled_p): Add GR8_REGS,
3664         GR9_REGS, GR89_REGS, FDPIC_FPTR_REGS, FDPIC_REGS.
3665
3666 2005-01-27  Steven Bosscher  <stevenb@suse.de>
3667
3668         * tree.h (SWITCH_COND, SWITCH_BODY, SWITCH_LABELS, CASE_LOW,
3669         CASE_HIGH, CASE_LABEL, ASM_STRING, ASM_OUTPUTS, ASM_INPUTS,
3670         ASM_CLOBBERS): Add tree checks.
3671
3672         * c-common.h (SWITCH_TYPE): Rename to SWITCH_STMT_TYPE.
3673         (SWITCH_STMT_COND, SWITCH_STMT_BODY): New.
3674         * c-common.def (SWITCH_STMT): Update to match.
3675         * c-common.c (c_do_switch_warnings): Use SWITCH_STMT accessor
3676         macros instead of SWITCH_EXPR ones.
3677         * c-dump.c (c_dump_tree): Likewise.
3678         * c-gimplify.c (gimplify_switch_stmt): Likewise.
3679         * c-typeck.c (c_start_case, do_case, c_finish_case): Likewise.
3680
3681         * doc/c-tree.texi (SWITCH_STMT): Update accessor macro names.
3682
3683 2005-01-27  Alan Modra  <amodra@bigpond.net.au>
3684
3685         * unwind-dw2.c (execute_stack_op): Add missing cases for
3686         DW_OP_shl, DW_OP_shr, DW_OP_shra, DW_OP_xor.
3687
3688 2005-01-27  Eric Botcazou  <ebotcazou@libertysurf.fr>
3689
3690         * config.gcc (Obsolete configurations): Remove 'dummy', add
3691         sparclite-*-coff*, sparclite-*-elf*, sparc86x-*-elf* and
3692         sparc-*-openbsd*.
3693
3694 2005-01-26  Diego Novillo  <dnovillo@redhat.com>
3695
3696         PR tree-optimization/19633
3697         * tree-ssa-alias.c (ptr_is_dereferenced_by): Also handle
3698         CALL_EXPRs.
3699         (maybe_create_global_var): Do not create .GLOBAL_VAR if there
3700         are no call-clobbered variables.
3701         * tree-outof-ssa.c (check_replaceable): Return false for calls
3702         with side-effects.
3703
3704 2005-01-26  Ulrich Weigand  <uweigand@de.ibm.com>
3705
3706         * dbxout.c (dbxout_symbol_location): Resolve constant pool references
3707         even for variables with NULL DECL_INITIAL.
3708
3709 2005-01-26  Stuart Hastings  <stuart@apple.com>
3710
3711         * gimplify.c (shortcut_cond_expr): Re-compute side-effects.
3712
3713 2005-01-26  Richard Henderson  <rth@redhat.com>
3714
3715         PR middle-end/18008
3716         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3717         field's type.
3718         * expr.c (store_field): Strip conversions to odd-bit-sized types
3719         if the destination field width matches.
3720
3721 2005-01-26  Richard Henderson  <rth@redhat.com>
3722
3723         * c-decl.c, expmed.c, expr.c: Revert last change.
3724
3725 2005-01-26  Richard Henderson  <rth@redhat.com>
3726
3727         PR middle-end/18008
3728         * c-decl.c (finish_struct): Set DECL_MODE after resetting a
3729         field's type.
3730         * expmed.c (store_fixed_bit_field): Create a paradoxical subreg
3731         if we don't need the bits above those present in the current mode.
3732         * expr.c (store_field): Strip conversions to odd-bit-sized types
3733         if the destination field width matches.
3734
3735 2005-01-26  Richard Sandiford  <rsandifo@redhat.com>
3736
3737         * config/mips/iris6.h (ENDFILE_SPEC): Don't link in irix-csr.o if
3738         either -ffast-math or -funsafe-math-optimizations is in use.
3739
3740 2005-01-26  Marek Michalkiewicz  <marekm@amelek.gda.pl>
3741
3742         PR target/19293
3743         PR target/19329
3744         * config/avr/avr.c (notice_update_cc): Only set condition code for
3745         ashrqi3 if shift count > 0.
3746         (out_shift_with_cnt): Handle shift count <= 0 as a no-op.
3747         (ashlqi3_out, ashlhi3_out, ashlsi3_out, ashrqi3_out, ashrhi3_out,
3748         ashrsi3_out, lshrqi3_out, lshrhi3_out, lshrsi3_out): Handle shift
3749         count <= 0 as a no-op, and shift count >= width by copying zero
3750         or sign bit to all bits of the result.
3751         * config/avr/avr.md (all shifts): Add alternatives for zero shift
3752         count, with attribute "length" set to 0 and "cc" set to "none".
3753
3754 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3755
3756         * doc/invoke.texi: Document -mTLS.
3757
3758         * testsuite/gcc.target/frv/all-tls-global-dynamic.c: New.
3759         * testsuite/gcc.target/frv/all-tls-initial-exec.c: New.
3760         * testsuite/gcc.target/frv/all-tls-initial-exec-pic.c: New.
3761         * testsuite/gcc.target/frv/all-tls-local-dynamic.c: New.
3762         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt.c: New.
3763         * testsuite/gcc.target/frv/all-tls-local-dynamic-plt-pic.c: New.
3764         * testsuite/gcc.target/frv/all-tls-local-exec.c: New.
3765         * testsuite/gcc.target/frv/all-tls-local-exec-TLS.c: New.
3766
3767         * configure.ac: Check for a TLS capable gas.
3768
3769         * configure: Regenerate.
3770
3771 2005-01-26  Richard Henderson  <rth@redhat.com>
3772
3773         PR middle-end/18008
3774         * combine.c (make_field_assignment): Simplify store to zero_extract
3775         from a source with an overlapping mask.
3776
3777 2005-01-26  Aldy Hernandez  <aldyh@redhat.com>
3778
3779         2004-11-11  Eric Christopher  <echristo@redhat.com>
3780
3781         * config/frv/frv.md: Add fr400_integer automaton. Don't
3782         allow TYPE_MUL, TYPE_MACC, or TYPE_CUT to issue in parallel
3783         to TYPE_MACC.
3784
3785 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3786
3787         PR middle-end/16585
3788         * cfgbuild.c (make_edges): Do not clear or set
3789         current_function_has_computed_jump.
3790         * function.h (struct function): Remove the has_computed_jump field.
3791         (current_function_has_computed_jump): Do not define.
3792         * sched-rgn.c (is_cfg_nonregular): Return true if a basic block ends
3793         in a computed jump.  Ignore current_function_has_computed_jump.
3794
3795 2005-01-26  Richard Henderson  <rth@redhat.com>
3796
3797         PR middle-end/19515
3798         * expr.c (categorize_ctor_elements): New argument p_must_clear.
3799         (categorize_ctor_elements_1): Likewise.  Detect a union that isn't
3800         fully initialized.
3801         (mostly_zeros_p): Update for new categorize_ctor_elements argument.
3802         * gimplify.c (gimplify_init_constructor): Likewise.  Only shove
3803         objects into static storage if they have more than one non-zero value.
3804         * tree.h (categorize_ctor_elements): Update decl.
3805
3806 2005-01-26  Steven Bosscher  <stevenb@suse.de>
3807
3808         PR middle-end/19616
3809         * tree.h (CALL_EXPR_TAILCALL): Add comment.
3810         * calls.c (check_sibcall_argument_overlap_1): Revert the change
3811         to this function from 2004-07-10.
3812         * tree-tailcall.c (suitable_for_tail_opt_p): Do not consider the
3813         the current function for tail call optimizations if the address
3814         of one of it its arguments is taken.
3815
3816 2005-01-26  Kazu Hirata  <kazu@cs.umass.edu>
3817
3818         * cse.c (fold_rtx): Call equiv_constant only when necessary.
3819
3820 2005-01-26  Bernd Schmidt  <bernd.schmidt@analog.com>
3821
3822         * function.c (expand_function_end): If current_function_calls_alloca,
3823         emit stack restore in a place that is reached when the function falls
3824         through at the end.
3825
3826 2005-01-26  Alexandre Oliva  <aoliva@redhat.com>
3827
3828         * Makefile.in (../$(build_subdir)/fixincludes/fixincl): Add dummy
3829         rule to avoid matching inappropriate suffix rule.
3830
3831 2005-01-26  Jan Hubicka  <jh@suse.cz>
3832
3833         PR tree-optimization/19241
3834         * tree-inline.c (copy_body_r): Do not walk subtrees after substituting.
3835
3836 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3837
3838         * config/cris/cris.h (LIB_SPEC) <sim*>: Use -lsyslinux, not
3839         -lsyssim.  Wrap -lc -lsyssim in --start-group --end-group instead
3840         of doubling.
3841         (STARTFILE_SPEC): Add crti.o, before crtbegin.o.
3842         <sim*>: Always use crt1.o, regardless of N in simN.
3843         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3844         (ENDFILE_SPEC): Add crtn.o, after crtend.o.
3845         (CRT_CALL_STATIC_FUNCTION): Remove.
3846         * config/cris/aout.h (STARTFILE_SPEC): <!melinux && sim*>: Always
3847         use crt1.o, regardless of N in simN.
3848         <!sim>: Drop support for -pg and -p variants; always use crt0.o.
3849         (LIB_SPEC): Do not define; default to the one in config/cris/cris.h.
3850         (CRIS_CPP_SUBTARGET_SPEC) <melinux && !nostdinc>: Remove special
3851         case isystem setting.
3852         (MAX_OFILE_ALIGNMENT): Correct to 32, not 16.
3853
3854 2005-01-25  Ian Lance Taylor  <ian@airs.com>
3855
3856         * gimple-low.c (block_may_fallthru): Correct handling of
3857         SWITCH_EXPR--may fall through if SWITCH_LABELS is NULL.
3858
3859 2005-01-26  Hans-Peter Nilsson  <hp@axis.com>
3860
3861         * config/cris/cris.h (CPP_SPEC): Adjust the various mtune=
3862         handlers to match indentation; nested under the mtune=* handler.
3863         Similar for mcpu= and march=.
3864
3865 2005-01-25  Daniel Jacobowitz  <dan@codesourcery.com>
3866
3867         * config/mips/linux.h (LIB_SPEC): Remove -rpath-link.
3868         * config/mips/linux64.h (LIB_SPEC): Likewise.
3869         * config/mn10300/linux.h (LIB_SPEC): Likewise.
3870         * config/sh/linux.h (LIB_SPEC): Likewise.
3871
3872 2005-01-25  Aldy Hernandez  <aldyh@redhat.com>
3873
3874         * config/frv/frv.c (frv_legitimize_tls_address): New.
3875         (TARGET_HAVE_TLS): Define.
3876         (FRV_SYMBOL_REF_TLS_P): Define.
3877         (frv_override_options): Handle new register classes.
3878         (frv_legitimate_address_p): Reject tls addresses.
3879         (frv_legitimize_address): Handle TLS addresses.
3880         (gen_inlined_tls_plt): New.
3881         (gen_tlsmoff): New.
3882         (frv_legitimize_tls_address): New.
3883         (unspec_got_name): Add TLS entries.
3884         (got12_operand): Add R_FRV_TLSMOFF12 case.
3885         (frv_emit_move): Fixup TLS addresses.
3886         (frv_emit_movsi): Legitimize TLS addresses.
3887
3888         * config/frv/frv.h (MASK_BIG_TLS): New.
3889         (TARGET_BIG_TLS): New.
3890         (HAVE_AS_TLS): Define.
3891         (TARGET_SWITCHES): Add -mTLS and -mtls options.
3892         (enum reg_class): Add GR8_REGS, GR9_REGS, GR89_REGS.
3893         (REG_CLASS_NAMES): Same.
3894         (REG_CLASS_CONTENTS): Same.
3895         (CONSTRAINT_LEN): New.
3896         (REG_CLASS_FROM_CONSTRAINT): New.
3897         (PREDICATE_CODES): Add symbolic_operand.
3898
3899         * config/frv/frv.md (define_constants): Add UNSPEC_GETTLSOFF,
3900         UNSPEC_TLS_LOAD_GOTTLSOFF12, UNSPEC_TLS_INDIRECT_CALL,
3901         UNSPEC_TLS_TLSDESC_LDD, UNSPEC_TLS_TLSDESC_LDD_AUX,
3902         UNSPEC_TLS_TLSOFF_LD, UNSPEC_TLS_LDDI, UNSPEC_TLSOFF_HILO,
3903         R_FRV_GOTTLSOFF_HI, R_FRV_GOTTLSOFF_LO, R_FRV_TLSMOFFHI,
3904         R_FRV_TLSMOFFLO, R_FRV_TLSMOFF12, R_FRV_TLSDESCHI,
3905         R_FRV_TLSDESCLO, R_FRV_GOTTLSDESCHI, R_FRV_GOTTLSDESCLO, GR8_REG,
3906         GR9_REG, GR14_REG, LRREG.
3907         (type): Add load_or_call attribute.
3908         ("load_or_call"): New reservation.
3909         ("call_gettlsoff"): New.
3910         ("tls_indirect_call"): New.
3911         ("tls_load_gottlsoff12"): New.
3912         ("tlsoff_hilo"): New.
3913         ("tls_tlsdesc_ldd"): New.
3914         ("tls_tlsoff_ld"): New.
3915         ("tls_lddi"): New.
3916
3917         * config/frv/frv-protos.h (symbolic_operand): Protoize.
3918
3919         2005-01-25  Alexandre Oliva  <aoliva@redhat.com>
3920
3921         * config/frv/frv.h (ASM_OUTPUT_DWARF_DTPREL): Define.
3922         * config/frv/frv-protos.h (frv_output_dwarf_dtprel): Declare.
3923         * config/frv/frv.c (TLS_BIAS): Define.
3924         (frv_output_dwarf_dtprel): New.
3925
3926 2005-01-26  Jakub Jelinek  <jakub@redhat.com>
3927
3928         PR rtl-optimization/19579
3929         * ifcvt.c (noce_try_cmove_arith): If emitting instructions to set up
3930         both A and B, see if they don't clobber registers the other expr uses.
3931
3932 2005-01-25  J"orn Rennecke <joern.rennecke@st.com>
3933
3934         * real.c (do_add): Initialize signalling and canonical members.
3935
3936         * real.c (real_from_integer): Zero out destination.
3937
3938 2005-01-18  Jan Hubicka  <jh@suse.cz>
3939
3940         PR tree-optimize/19337
3941         * tree-inline.c (initialize_inlined_parameters): Copy
3942         saved_static_chain_decl only.
3943
3944 2005-01-25  Richard Henderson  <rth@redhat.com>
3945
3946         PR target/19556
3947         PR target/19584
3948         * config/i386/i386.c (x86_inter_unit_moves): Zero.
3949         (ix86_preferred_reload_class): Rewrite fp-constant section, with
3950         80387 enabled, to return a proper subclass.  Return the subset that
3951         overlaps with GENERAL_REGS for PLUS.
3952         * config/i386/i386.md (movsi_1, movdi_2): Set type to "mmx" for pxor.
3953
3954 2005-01-25  Richard Henderson  <rth@redhat.com>
3955
3956         PR middle-end/19609
3957         * tree-complex.c (expand_complex_div_wide): Use the correct formulae.
3958
3959 2005-01-25  Roger Sayle  <roger@eyesopen.com>
3960
3961         * expmed.c (choose_multiplier): Change interface to return the
3962         multiplier lowpart as an rtx instead of an unsigned HOST_WIDE_INT.
3963         (expand_divmod): Update calls to choose_multiplier.
3964
3965 2005-01-24  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
3966
3967         PR middle-end/19330
3968         * expmed.c (extract_bit_field): Use adjust_address instead of
3969         gen_lowpart when op0 is a MEM.
3970
3971 2005-01-24  Steven Bosscher  <stevenb@suse.de>
3972
3973         * cfgexpand.c (expand_gimple_tailcall): Fix typo.
3974
3975 2005-01-24  Richard Sandiford  <rsandifo@redhat.com>
3976
3977         * config/mips/irix-csr.c: New file.
3978         * config/mips/t-iris6 (irix-csr.o): New rule to build it.
3979         (EXTRA_MULTILIB_PARTS): Add irix-csr.o.
3980         * config/mips/iris6.h (ENDFILE_SPEC): Include it in n32 and n64
3981         executables.
3982
3983 2005-01-24  Eric Botcazou  <ebotcazou@libertysurf.fr>
3984
3985         PR bootstrap/19364
3986         * config.gcc (sparc-*-elf*): Remove sol2.h, sparc/sol2.h and
3987         sparc/elf.h, add sparc/sp-elf.h.
3988         (sparc-*-rtems*): Likewise.
3989         (sparclite-*-elf*): Remove sol2.h, sparc/sol2.h, sparc/elf.h and
3990         tm-dwarf2.h, add sparc/sp-elf.h.
3991         (sparc86x-*-elf): Likewise.
3992         (sparc64-*-elf*): Remove sol2.h, sparc/sol2.h and tm-dwarf2.h.
3993         * config/sparc/liteelf.h (TARGET_SUB_OS_CPP_BUILTINS): Rename into
3994         TARGET_OS_CPP_BUILTINS.
3995         * config/sparc/sp86x-elf (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3996         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
3997         Undefine it.
3998         * config/sparc/openbsd64.h (NO_IMPLICIT_EXTERN_C): Undefine.
3999         * config/sparc/sp64-elf.h (NO_IMPLICIT_EXTERN_C): New macro.
4000         (SWITCH_TAKES_ARG): Likewise.
4001         (LOCAL_LABEL_PREFIX): Likewise.
4002         (ASM_GENERATE_INTERNAL_LABEL): Likewise.
4003         (TARGET_N_FORMAT_TYPES): Delete.
4004         (TARGET_FORMAT_TYPES): Likewise.
4005         (ASM_DECLARE_FUNCTION_SIZE): Likewise.
4006         * config/sparc/elf.h: Delete.
4007         * config/sparc/sp-elf.h: New file.
4008
4009 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
4010
4011         * tree-flow-inline.h (phi_arg_from_edge): Remove.
4012         * tree-flow.h: Remove the corresponding prototype.
4013         * tree-ssa-operands.h, tree-ssa-threadupdate.c, tree-ssa.c,
4014         tree-vectorizer.c: Use dest_idx instead of phi_arg_from_edge.
4015
4016 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4017
4018         PR target/17751
4019         * config/rs6000/rs6000.c (rs6000_file_start): Create toc section
4020         for AIX ABI or ELF -fPIC.
4021         (rs6000_emit_load_toc_table): Don't create toc_section here.
4022         (rs6000_xcoff_file_start): Nor here.
4023
4024 2005-01-24  J"orn Rennecke <joern.rennecke@st.com>
4025
4026         * sh.c (ra.h): Don't #include.
4027         (hard_regs_intersect_p): New function, resurrected from ra.c.
4028
4029         * sh.c: Fix 1996 Copyright.
4030
4031 2005-01-24  Richard Henderson  <rth@redhat.com>
4032             Aldy Hernandez  <aldyh@redhat.com>
4033
4034         * regrename.c (note_sets): Handle subregs.
4035
4036 2005-01-24  Joseph S. Myers  <joseph@codesourcery.com>
4037
4038         PR bootstrap/18058
4039         * genconditions.c (write_header, write_conditions): Elide file if
4040         not GCC >= 3.0.1.
4041
4042 2005-01-24  Kazu Hirata  <kazu@cs.umass.edu>
4043
4044         * c-opts.c, expmed.c, gengtype.c, tree-complex.c,
4045         config/arm/iwmmxt.md, config/avr/avr.c, config/s390/s390.h:
4046         Update copyright.
4047
4048 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4049
4050         * builtins.c (get_pointer_alignment, gimplify_va_arg_expr,
4051         expand_builtin_printf, expand_builtin_fprintf,
4052         expand_builtin_sprintf): Use POINTER_TYPE_P instead TREE_CODE
4053         checking against POINTER_TYPE.
4054         (validate_arglist): Handle POINTER_TYPE code by checking
4055         POINTER_TYPE_P.
4056
4057 2005-01-24  Paolo Bonzini  <bonzini@gnu.org>
4058
4059         * rtlanal.c (non_rtx_starting_operands, for_each_rtx_1,
4060         init_rtlanal): New.
4061         (for_each_rtx): Call for_each_rtx_1.
4062         * rtl.h (init_rtlanal): Declare.
4063         * toplev.c (backend_init): Call init_rtlanal.
4064
4065 2005-01-24  Jakub Jelinek  <jakub@redhat.com>
4066
4067         * flow.c (propagate_one_insn): Formatting.
4068
4069         PR middle-end/19551
4070         * flow.c (libcall_dead_p): Be more conservative if unsure.
4071         If there are any instructions between insn and call, see if they are
4072         all dead before saying the libcall is dead.
4073
4074 2005-01-24  Uros Bizjak  <uros@kss-loka.si>
4075
4076         * config/i386/i386.md (*extendsfdf2_sse): Use "nonimmediate_operand"
4077         operand constraint for operand 0.
4078
4079 2005-01-23  Richard Henderson  <rth@redhat.com>
4080
4081         PR 19486
4082         * tree-complex.c (expand_complex_div_wide): Set EDGE_FALLTHRU on
4083         edges leading to join block.
4084
4085 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4086
4087         * expmed.c (expand_mult_highpart): Make static.  Change type of
4088         constant multiplier argument from unsigned HOST_WIDE_INT to rtx.
4089         (expand_divmod): Updates calls to expand_mult_highpart by using
4090         gen_int_mode to pass a CONST_INT rtx.
4091         * rtl.h (expand_mult_highpart): Remove prototype.
4092
4093 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4094
4095         * flow.c (regset_bytes, regset_size): Remove.
4096
4097         * cfganal.c: Fix a reference to Harvey's paper.
4098
4099 2005-01-23  Steven Bosscher  <stevenb@suse.de>
4100
4101         PR rtl-optimization/19464
4102         * tree-optimize.c (init_tree_optimization_passes): Add one more
4103         copyrename pass just before out-of-ssa.
4104
4105 2005-01-23  Joseph S. Myers  <joseph@codesourcery.com>
4106
4107         PR bootstrap/18058
4108         * recog.c (recog_memoized): Don't define if GENERATOR_FILE.
4109         * ggc-none.c (ggc_free): Define.
4110
4111 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4112
4113         * cse.c (max_reg, max_insn_uid): Remove.
4114         (cse_main): Don't access max_reg or max_insn_uid.
4115
4116         * c-common.c (explicit_flag_signed_bitfields,
4117         lang_statement_code_p, lang_expand_function_end): Remove.
4118         * c-common.h: Remove the corresponding declarations.
4119         * c-opts.c (c_common_handle_option): Remove all write access
4120         to explicit_flag_signed_bitfields.
4121
4122         * cgraph.c (cgraph_varpool_n_nodes): Remove.
4123         (cgraph_varpool_node): Don't access cgraph_varpool_n_nodes.
4124         * cgraph.h: Remove the corresponding declaration.
4125
4126         * gcse.c (null_pointer_info): Remove.
4127
4128 2005-01-23  Roger Sayle  <roger@eyesopen.com>
4129             Eric Botcazou  <ebotcazou@libertysurf.fr>
4130
4131         * combine.c (simplify_logical): Only simplify logical expressions
4132         of the form ior(and(x,y),z) by the inverse distributive law if the
4133         result is cheaper than the original.
4134
4135 2005-01-23  Kazu Hirata  <kazu@cs.umass.edu>
4136
4137         * alias.c, c-common.h, c-incpath.c, c-incpath.h, expr.c,
4138         fold-const.c, gimplify.c, params.h, tree-data-ref.c,
4139         tree-if-conv.c, tree-nested.c, tree-outof-ssa.c,
4140         tree-ssa-dom.c, tree-vectorizer.c, tree.def, config/darwin.c,
4141         config/freebsd-spec.h, config/arm/arm.h,
4142         config/h8300/h8300.md, config/i386/i386.md,
4143         config/i386/predicates.md, config/i386/sse.md,
4144         config/ia64/ia64.c, config/ip2k/ip2k.c, config/s390/s390.c,
4145         config/vax/vax.md: Fix comment typos.  Follow spelling
4146         conventions.
4147
4148 2005-01-23  Steven Bosscher  <stevenb@suse.de>
4149
4150         * gengtype.c (walk_type): Produce `not equal to' compares for loop
4151         tests, instead of `less than'.
4152
4153 2005-01-23  Richard Sandiford  <rsandifo@redhat.com>
4154
4155         * function.c (assign_parm_setup_block): When creating a new stack slot
4156         for a parameter, get its alignment from the parameter's DECL_ALIGN
4157         rather than the type's TYPE_ALIGN.  Make sure that the parameter
4158         is at least word aligned.
4159
4160 2005-01-22  Roger Sayle  <roger@eyesopen.com>
4161
4162         PR middle-end/19378
4163         * config/avr/avr.c (avr_hard_regno_mode_ok): Rewrite.
4164
4165 2005-01-22  Richard Henderson  <rth@redhat.com>
4166
4167         PR target/19506
4168         * config/i386/i386.md (movsfcc_1_sse_max): Use nonimmediate_operand
4169         in both compare operands.
4170         (movdfcc_1_sse_max): Likewise.
4171         (movsfcc_1_sse): Likewise.  Add earlyclobber for scratch.
4172         (movdfcc_1_sse): Likewise.
4173         * config/i386/i386.c (ix86_split_sse_movcc): Emit copies into the
4174         scratch register as needed.
4175
4176 2005-01-22  Richard Henderson  <rth@redhat.com>
4177
4178         * config/i386/i386.md (smaxsf3): Fix mnemonic typo.
4179
4180         * config/i386/i386.c (ix86_prepare_fp_compare_args): Fix is_sse test.
4181
4182 2005-01-22  Richard Henderson  <rth@redhat.com>
4183
4184         * genopinit.c (optabs): Use smin/smax for floating point too.
4185         * doc/md.texi: Update to match.  Clarify that floating point
4186         results are undefined for +0/-0 and NaN.
4187         * doc/rtl.texi: Likewise.
4188         * rtl.def (SMIN, SMAX): Likewise
4189         * tree.def (MIN_EXPR, MAX_EXPR): Likewise.
4190
4191         * config/alpha/alpha.md (smaxdf3, smindf3, smaxsf3, sminsf3): Add
4192         leading 's' to the name.
4193         * config/ia64/ia64.md (smaxsf3, sminsf3, smaxdf3, smindf3,
4194         smaxxf3, sminxf3): Likewise.
4195         * config/rs6000/rs6000.md (smaxdf3, smindf3, smaxsf3, sminsf3):
4196         Likewise.
4197
4198 2005-01-22  Paul Brook  <paul@codesourcery.com>
4199
4200         * config/arm/arm.md: Use "Uy" constraint for wcgr load/stores.
4201
4202 2005-01-21  Mark Dettinger  <dettinge@de.ibm.com>
4203
4204         * config/s390/s390.c (struct processor_costs): New fields
4205         dlgr, dlr, dr, dsgfr, dsgr.
4206         (z900_cost, z990_cost): Values for new fields.
4207         (s390_rtx_costs): New cases MEM und COMPARE in switch
4208         statement. Modified handling of SIGN_EXTEND, ZERO_EXTEND,
4209         DIV, MOD, UDIV, UMOD.
4210
4211 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
4212
4213         * config/s390/s390.md ("doloop_si64"): Reload input value directly
4214         into the register being decremented.
4215         ("doloop_si31", "doloop_di"): Likewise.
4216         ("*doloop_si_long"): Adapt pattern.
4217
4218 2005-01-21  Ulrich Weigand  <uweigand@de.ibm.com>
4219
4220         * config/s390/s390.h (HARD_REGNO_NREGS): Fix computation for
4221         access registers.
4222         (CLASS_MAX_NREGS): Likewise.
4223
4224 2005-01-21  Daniel Berlin  <dberlin@dberlin.org>
4225
4226         * doc/tree-ssa.texi (Statement Operands): Add example for new
4227         must-def macro. Note deprecation of old operands interface.
4228
4229 2005-01-22  Richard Sandiford  <rsandifo@redhat.com>
4230
4231         PR tree-optimization/19484
4232         * tree-cfg.c (remove_fallthru_edge): New function.
4233         (cleanup_control_flow): Remove fallthru edges from calls that are
4234         now known not to return.
4235
4236 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
4237
4238         Fix PR tree-optimization/19038
4239         * tree-ssa-dom.c (cprop_operand): Don't replace loop invaeriant
4240         copies with loop variant ones.
4241
4242 2005-01-22  Kazu Hirata  <kazu@cs.umass.edu>
4243
4244         * cfganal.c, real.h, reorg.c, timevar.def, tree-ssa-ccp.c,
4245         config/alpha/alpha-protos.h, config/alpha/alpha.h,
4246         config/alpha/alpha.md, config/alpha/predicates.md,
4247         config/sparc/freebsd.h, config/sparc/netbsd-elf.h,
4248         config/sparc/sol2.h: Update copyright.
4249
4250         * tree-cfg.c (remove_forwarder_block_with_phi): Look at the
4251         first label to see if it is a nonlocal label.
4252
4253 2005-01-22  David Edelsohn  <edelsohn@gnu.org>
4254             Andrew Pinski  <pinskia@physics.uc.edu>
4255
4256         PR target/19491
4257         * config/rs6000/rs6000.c (rs6000_va_start): Saturate n_gpr at
4258         maximum number of GPRs.  Saturate n_fpr at maximum number of FPRs.
4259
4260 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
4261
4262         * config/rs6000/rtems.h: Update copyright.
4263
4264 2005-01-22  Ralf Corsepius  <ralf.corsepius@rtems.org>
4265
4266         PR target/19548
4267         * config/rs6000/rtems.h: Resurrect cpp_os_rtems_spec from gcc < 3.4.
4268         (CPP_OS_RTEMS_SPEC): New (From gcc-3.3's config/rs6000/sys4.h).
4269         (SUBSUBTARGET_EXTRA_SPECS): Use CPP_OS_RTEMS_SPEC.
4270
4271 2005-01-22  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
4272
4273         PR c/18809
4274         * c-typeck.c (convert_arguments): Check for error_mark_node.
4275
4276 2005-01-21  Ian Lance Taylor  <ian@airs.com>
4277
4278         PR tree-optimization/13000
4279         * tree-inline.c: Include "tree-flow.h".
4280         (expand_call_inline): If warn_return_type, warn if non-void inline
4281         function falls through.
4282         * tree-cfg.c (execute_warn_function_return): Don't warn about
4283         control reaching end if TREE_NO_WARNING is set.  Set
4284         TREE_NO_WARNING.
4285         * gimple-low.c (block_may_fallthru): Don't assume that SWITCH_EXPR
4286         has been lowered.
4287         * gimplify.c (shortcut_cond_expr): Don't emit a jump over the else
4288         branch if we don't need one.
4289         * c-typeck.c: Include "tree-flow.h"
4290         (c_finish_bc_stmt): Don't add a goto if the current statement
4291         list doesn't fall through to the current point.
4292
4293 2005-01-21  Roger Sayle  <roger@eyesopen.com>
4294
4295         PR rtl-optimization/576
4296         * real.c (real_arithmetic): Change return type from void to bool
4297         to return an indication that the result may be inexact.
4298         * real.h (real_arithmeric): Update prototype.
4299         * fold-const.c (const_binop):  Don't constant fold floating
4300         point expressions when the user specifies -frounding-math and
4301         the result may depend upon the run-time rounding mode.
4302         (fold_convert_const_real_from_real): Clean-up.
4303         (fold_initializer): Ignore flag_rounding_math for initializers.
4304         * simplify-rtx.c (simplify_binary_operation): Likewise, don't
4305         constant fold FP operations with flag_rounding_math if the
4306         result may depend upon the run-time rounding mode.
4307
4308 2005-01-21  Tom Tromey  <tromey@redhat.com>
4309
4310         * c-cppbuiltin.c (define__GNUC__): Correct assertion.
4311
4312 2005-01-21  Kazu Hirata  <kazu@cs.umass.edu>
4313
4314         * tree-cfg.c: Fix comment typos.
4315
4316 2005-01-21  J"orn Rennecke <joern.rennecke@st.com>
4317
4318         * passes.c (rest_of_handle_flow2): Close / open the flow2 dump file
4319         around the call to rest_of_handle_branch_target_load_optimize.
4320
4321 2005-01-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
4322
4323         * config.gcc (sparc-*-netbsdelf*): Include dbxelf.h
4324         (sparc64-*-openbsd*): Likewise.
4325         (sparclite-*-elf*): Include tm-dwarf2.h.
4326         (sparc86x-*-elf*): Likewise.
4327         (sparc64-*-elf*): Likewise.
4328         * config/sparc/linux64.h (DWARF2_DEBUGGING_INFO): Delete.
4329         (DBX_DEBUGGING_INFO): Likewise.
4330         * config/sparc/liteelf.h (DWARF2_DEBUGGING_INFO): Likewise.
4331         (PREFERRED_DEBUGGING_TYPE): Likewise.
4332         * config/sparc/netbsd-elf.h (PREFERRED_DEBUGGING_TYPE): Likewise.
4333         * config/sparc/sp64-elf.h (DBX_DEBUGGING_INFO): Likewise.
4334         (PREFERRED_DEBUGGING_TYPE): Likewise.
4335         * config/sparc/sp86x-elf.h (DWARF2_DEBUGGING_INFO): Likewise.
4336         (PREFERRED_DEBUGGING_TYPE): Likewise.
4337         * config/sparc/sparc.h (DBX_DEBUGGING_INFO): Likewise.
4338
4339 2005-01-21  Hans-Peter Nilsson  <hp@bitrange.com>
4340
4341         PR target/18701
4342         * combine.c (combine_simplify_rtx): Revert change of 2004-12-31.
4343
4344 2005-01-20  Paul Brook  <paul@codesourcery.com>
4345
4346         * doc/rtl.texi: Document value extension requirements for CONST_INT.
4347
4348 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4349
4350         * tree-cfg.c (tree_verify_flow_info): Check that a nonlocal
4351         label is first in a sequence of labels.
4352
4353         * tree-cfg.c (tree_verify_flow_info): Fix a typo.
4354
4355 2005-01-20  Janis Johnson  <janis187@us.ibm.com>
4356             Giovanni Bajo  <giovannibajo@gcc.gnu.org>
4357
4358         * doc/sourcebuild.texi (Test Directives): New.
4359
4360 2005-01-20  Roger Sayle  <roger@eyesopen.com>
4361
4362         * real.c (real_floor): Don't leave the result uninitialized when
4363         mode is VOIDMode, but return the unrounded intermediate value.
4364         (real_ceil): Likewise.
4365
4366 2005-01-20  Paul Brook  <paul@codesourcery.com>
4367
4368         * config/arm/arm.md (insv): Use gen_int_mode.
4369
4370 2005-01-20  Eric Botcazou  <ebotcazou@libertysurf.fr>
4371
4372         * config/sparc/freebsd.h (ASM_OUTPUT_INTERNAL_LABELREF): Delete.
4373         * config/sparc/linux.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4374         * config/sparc/linux64.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4375         * config/sparc/netbsd-elf.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4376         * config/sparc/sol2.h (ASM_OUTPUT_INTERNAL_LABELREF): Likewise.
4377
4378 2005-01-20  Daniel Berlin  <dberlin@dberlin.org>
4379
4380         Fix PR debug/19124
4381         * dwarf2out.c (concat_loc_descriptor): We don't know we can use
4382         fbreg, so we have to assume we can't.
4383         (loc_descriptor_from_tree_1): Ditto.
4384         (containing_function_has_frame_base): New function.
4385         (add_location_or_const_value_attribute): Use it.
4386         Also try to generate a frame_base from a single element location
4387         list.
4388
4389 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4390
4391         PR tree-optimization/15349
4392         * timevar.def (TV_TREE_MERGE_PHI): New.
4393         * tree-cfg.c (tree_forwarder_block_p): Add a new argument
4394         PHI_WANTED.
4395         (remove_forwarder_block, cleanup_forwarder_blocks): Adjust the
4396         calls to tree_forwarder_block_p.
4397         (remove_forwarder_block_with_phi, merge_phi_nodes,
4398         gate_merge_phi, pass_merge_phi): New.
4399         * tree-optimize.c (init_tree_optimization_passes): Add
4400         pass_merge_phi.
4401         * tree-pass.h: Add an extern for pass_merge_phi;
4402
4403 2005-01-20  Richard Henderson  <rth@redhat.com>
4404
4405         PR target/19418
4406         * config/i386/emmintrin.h (_mm_castpd_ps, _mm_castpd_si128): New.
4407         (_mm_castps_pd, _mm_castps_si128): New.
4408         (_mm_castsi128_ps, _mm_castsi128_pd): New.
4409
4410 2005-01-20  Richard Henderson  <rth@redhat.com>
4411
4412         PR target/19530
4413         * config/i386/mmintrin.h (_mm_cvtsi32_si64): Use
4414         __builtin_ia32_vec_init_v2si.
4415         (_mm_cvtsi64_si32): Use __builtin_ia32_vec_ext_v2si.
4416         * config/i386/i386.c (IX86_BUILTIN_VEC_EXT_V2SI): New.
4417         (ix86_init_mmx_sse_builtins): Create it.
4418         (ix86_expand_builtin): Expand it.
4419         (ix86_expand_vector_set): Handle V2SFmode and V2SImode.
4420         * config/i386/mmx.md (vec_extractv2sf_0, vec_extractv2sf_1): New.
4421         (vec_extractv2si_0, vec_extractv2si_1): New.
4422
4423 2005-01-20  Richard Henderson  <rth@redhat.com>
4424
4425         PR target/16533
4426         * config/i386/i386.c (ix86_expand_push): New.
4427         * config/i386/mmx.md (push<MMXMODE>1): New.
4428         * config/i386/sse.md (push<SSEMODE>1): New.
4429         * config/i386/i386-protos.h: Update.
4430
4431 2005-01-20  Kazu Hirata  <kazu@cs.umass.edu>
4432
4433         * params.def, params.h, predict.c, tree-ssa-loop-im.c: Update
4434         copyright.
4435
4436 2005-01-20  Richard Henderson  <rth@redhat.com>
4437
4438         * rtl.def (CONST_VECTOR): Use RTX_CONST_OBJ.
4439         * rtl.h (CONSTANT_P): Don't special case CONST_VECTOR.
4440
4441 2005-01-19  Richard Henderson  <rth@redhat.com>
4442
4443         PR target/19350
4444         * config/i386/i386.c (ix86_expand_vector_move_misalign): Convert
4445         to V4SFmode in SSE1 fallback load path.
4446
4447 2005-01-19  Richard Henderson  <rth@redhat.com>
4448
4449         * config/i386/i386.c (ix86_expand_vector_init_one_var): Fix typo
4450         in QImode expansion to ix86_expand_vector_set.
4451         (ix86_expand_vector_init_general): Fix typo in V8HImode recursive call.
4452
4453 2005-01-19  Richard Henderson  <rth@redhat.com>
4454
4455         PR target/19511
4456         * config/i386/i386.c (ix86_preferred_reload_class): Return a proper
4457         subclass of the input class.
4458         (ix86_secondary_memory_needed): Always true for cross-MMX classes.
4459         Always true for cross-SSE1 classes.  Rationalize conditionals.
4460         * config/i386/i386.h (SSE_CLASS_P, MMX_CLASS_P): Use straight equality.
4461         * config/i386/i386.md (movsi_1): Add MMX/SSE zeros.  Fix alternatives
4462         for SSE1.  Don't check TARGET_INTER_UNIT_MOVES.
4463         (movdi_2): Add MMX/SSE zeros.
4464         (movdi_1_rex64): Likewise.  Don't check TARGET_INTER_UNIT_MOVES.
4465         (movsf_1): Don't check TARGET_INTER_UNIT_MOVES.
4466         (zero_extendsidi2_32, zero_extendsidi2_rex64): Likewise.
4467         (movsi_1_nointernunit, movdi_1_rex64_nointerunit): Remove.
4468         (movsf_1_nointerunit, zero_extendsidi2_32_1): Remove.
4469         (zero_extendsidi2_rex64_1): Remove.
4470         (MOV0 peephole): Check GENERAL_REG_P.
4471
4472 2005-01-19  Richard Henderson  <rth@redhat.com>
4473
4474         PR target/19427
4475         * config/i386/i386.c (ix86_expand_vector_set): Fix third and fourth
4476         shufps elements.
4477         (ix86_expand_vector_extract): Likewise.
4478
4479 2005-01-19  Richard Henderson  <rth@redhat.com>
4480
4481         PR middle-end/19304
4482         * expr.c (emit_move_change_mode): New argument force; use
4483         simplify_gen_subreg if true.
4484         (emit_move_via_alt_mode): Merge into ...
4485         (emit_move_via_integer): ... here.
4486         (emit_move_ccmode): Use emit_move_change_mode directly.
4487
4488 2005-01-19  Richard Henderson  <rth@redhat.com>
4489
4490         PR target/19518
4491         * config/alpha/alpha.c (alpha_rtx_costs): Handle HIGH.
4492         (alpha_preferred_reload_class): Handle CONST_VECTOR.
4493         (alpha_emit_set_const_1): Add no_output parameter; don't emit
4494         rtl if true.
4495         (alpha_emit_set_const): Likewise.  Make static.
4496         (alpha_emit_set_long_const): Make static.
4497         (alpha_extract_integer): Split out from alpha_expand_mov.
4498         (alpha_split_const_mov): Likewise.
4499         (alpha_expand_mov): Use them.  Handle CONST_VECTOR.
4500         (alpha_legitimate_constant_p): New.
4501         * config/alpha/alpha-protos.h: Update.
4502         * config/alpha/alpha.h (REGISTER_MOVE_COST): Correct fp<->gp cost.
4503         (LEGITIMATE_CONSTANT_P): Re-implement with a function.
4504         * config/alpha/alpha.md (movsi): Add n alternative.
4505         (movsi_nt_vms, movdi_er_nofix, movdi_er_fix, movdi_fix): Likewise.
4506         (mov<VEC>_fix, mov<VEC>_nofix): Add i alternative.
4507         (splitters for all of the above): Use alpha_split_const_mov.
4508         * config/alpha/predicates.md (non_add_const_operand): New.
4509         (non_zero_const_operand): New.
4510         (input_operand): Use alpha_legitimate_constant_p after reload.
4511
4512 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
4513
4514         PR tree-optimization/19038
4515         * tree-ssa-loop-ivopts.c (allow_ip_end_pos_p): New function.
4516         (add_candidate): Add ivs with increment in latch only if
4517         allow_ip_end_pos_p is true.
4518         (determine_iv_cost): Use empty_block_p.
4519
4520 2005-01-19  Daniel Berlin  <dberlin@dberlin.org>
4521
4522         * cfganal.c (compute_dominance_frontiers_1): Replace with new algorithm
4523         (compute_dominance_frontiers): Ditto.
4524
4525 2005-01-19  Ralf Corsepius  <ralf.corsepius@rtems.org>
4526
4527         PR target/19529
4528         * config/sh/t-rtems: New.
4529         * config.gcc (sh-*-rtems*): Reflect having added config/sh/t-rtems.
4530
4531 2005-01-19  Zdenek Dvorak  <dvorakz@suse.cz>
4532
4533         * tree-ssa-ccp.c (maybe_fold_offset_to_component_ref): Always subtract
4534         the offset of the selected field.
4535
4536 2005-01-19  Kazu Hirata  <kazu@cs.umass.edu>
4537
4538         * tree-cfg.c (remove_forwarder_block): Fix the check to
4539         prevent a nonlocal label from appearing in the middle of a
4540         basic block.
4541
4542 2005-01-19  Hans-Peter Nilsson  <hp@axis.com>
4543
4544         PR rtl-optimization/19462
4545         * reorg.c (find_end_label): Create return insn only if
4546         current_function_epilogue_delay_list is empty.
4547
4548 2005-01-19  Paolo Bonzini  <bonzini@gnu.org>
4549
4550         * doc/passes.texi: Remove paragraph mentioning new-ra.
4551
4552 2005-01-19  Jakub Jelinek  <jakub@redhat.com>
4553
4554         PR rtl-optimization/15139
4555         * combine.c: Include params.h.
4556         (count_rtxs): New function.
4557         (record_value_for_reg): If replace_rtx would replace at least
4558         2 occurrences of REG in VALUE and TEM is really large, replace REG with
4559         (clobber (const_int 0)) instead of TEM.
4560         * params.def (PARAM_MAX_LAST_VALUE_RTL): New.
4561         * params.h (MAX_LAST_VALUE_RTL): New.
4562         * Makefile.in (combine.o): Depend on $(PARAMS_H).
4563         * doc/invoke.texi (--param max-last-value-rtl=N): Document.
4564
4565         PR c/17297
4566         * c-typeck.c (digest_init): Only call build_vector if all constructor
4567         elements are *_CST nodes.
4568         * gimplify.c (gimplify_init_constructor): Likewise.
4569
4570         PR middle-end/19164
4571         * c-typeck.c (digest_init): Only call build_vector if inside_init
4572         is a CONSTRUCTOR.
4573
4574 2005-01-18  Tobias Schl"uter  <tobias.schlueter@physik.uni-muenchen.de>
4575
4576         * toplev.c (init_asm_output): Remove dead #ifdef.
4577
4578 2005-01-18  Kaz Kojima  <kkojima@gcc.gnu.org>
4579
4580         * config/sh/linux.h (TARGET_C99_FUNCTIONS): Define.
4581
4582 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
4583
4584         * calls.c (expand_call): Check DECL_BUILT_IN_CLASS before
4585         accessing DECL_FUNCTION_CODE.
4586         * dojump.c (do_jump): Likewise.
4587         * gimplify.c (gimplify_call_expr): Likewise.
4588         * predict.c (expr_expected_value): Likewise.
4589         (strip_builtin_expect): Likewise.
4590         * tree-inline.c (estimate_num_insns_1): Likewise.
4591         * tree-ssa-loop-im.c (stmt_cost): Likewise
4592         * fold-const.c (fold): Test for BUILT_IN_NORMAL.
4593         (tree_expr_nonnegative_p): Likewise.
4594
4595 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
4596
4597         * config/sparc/sparc.c (load_pic_register): Emit the appropriate
4598         variant of the load_pcrel_sym pattern.
4599         * config/sparc/sparc.md (P macro): Move to the top.
4600         (load_pcrel_sym): Macroize using P.
4601         (save_register_window): Likewise.
4602
4603 2005-01-18  Aldy Hernandez  <aldyh@redhat.com>
4604
4605         * config/rs6000/rs6000.md ("sunordered"): Disable for e500.
4606         ("sordered"): Same.
4607
4608 2005-01-18  Andrew Pinski  <pinskia@physics.uc.edu>
4609
4610         PR C/19472
4611         * c-typeck.c (build_asm_expr): Strip nops off
4612         input memory operands.
4613
4614 2005-01-18  David Edelsohn  <edelsohn@gnu.org>
4615
4616         * config/rs6000/aix43.h (CPLUSPLUS_CPP_SPEC): Delete
4617         _XOPEN_SOURCE, _XOPEN_SOURCE_EXTENDED, _LARGE_FILE_API.
4618         * config/rs6000/aix51.h (CPLUSPLUS_CPP_SPEC): Same.
4619         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Same.
4620
4621 2005-01-18  Joel Sherrill <joel.sherrill@oarcorp.com>
4622
4623         PR target/19379
4624         * config/i386/i386.c (override_options): If the 80387 is disabled,
4625         then do not return FP values using FP registers.
4626
4627 2005-01-18  Kazu Hirata  <kazu@cs.umass.edu>
4628
4629         * basic-block.h, c-common.c, c-cppbuiltin.c, c-lang.c,
4630         c-tree.h, cfgbuild.c, cgraph.c, cgraph.h, collect2.c,
4631         combine.c, config.gcc, coverage.h, cse.c, cselib.c,
4632         defaults.h, df.c, dwarf2asm.c, dwarf2out.c, explow.c, expr.c,
4633         flow.c, fold-const.c, gcse.c, ggc-page.c, gimple-low.c,
4634         gimplify.c, ifcvt.c, langhooks-def.h, lcm.c, optabs.h,
4635         output.h, postreload-gcse.c, postreload.c, recog.c,
4636         resource.c, rtl.def, rtlanal.c, sched-deps.c, sched-rgn.c,
4637         targhooks.h, toplev.c, tree-data-ref.c, tree-eh.c,
4638         tree-flow.h, tree-loop-linear.c, tree-mudflap.h, tree-nrv.c,
4639         tree-optimize.c, tree-outof-ssa.c, tree-pass.h,
4640         tree-scalar-evolution.c, tree-ssa-copy.c, tree-ssa-dce.c,
4641         tree-ssa-dse.c, tree-ssa-loop-ivopts.c, tree-ssa-operands.c,
4642         tree-ssa-pre.c, tree-ssa.c, tree-vectorizer.c, tree.def,
4643         unwind-dw2-fde-darwin.c, var-tracking.c: Update copyright.
4644
4645         * config/darwin.c, config/darwin.h, config/freebsd-spec.h,
4646         config/alpha/alpha.c, config/arm/vfp.md,
4647         config/i386/emmintrin.h, config/i386/i386-modes.def,
4648         config/i386/i386-protos.h, config/i386/i386.h,
4649         config/i386/pmmintrin.h, config/i386/ppro.md,
4650         config/i386/predicates.md, config/i386/xmmintrin.h,
4651         config/i860/i860.c, config/ia64/ia64-modes.def,
4652         config/ia64/ia64-protos.h, config/ia64/ia64.h,
4653         config/ia64/ia64.md, config/ia64/itanium1.md,
4654         config/ia64/itanium2.md, config/ia64/predicates.md,
4655         config/iq2000/iq2000.h, config/mips/linux64.h,
4656         config/rs6000/aix41.h, config/rs6000/aix43.h,
4657         config/rs6000/aix52.h, config/rs6000/darwin-fallback.c,
4658         config/rs6000/rs6000.c, config/rs6000/rs6000.h,
4659         config/rs6000/spe.md, config/sh/sh.md, config/sparc/linux.h,
4660         config/sparc/linux64.h, config/sparc/litecoff.h,
4661         config/sparc/sp64-elf.h, config/sparc/sparc.c,
4662         config/sparc/sparc.h, config/sparc/sparc.md,
4663         config/sparc/sysv4-only.h: Update copyright.
4664
4665 2005-01-18  Richard Henderson  <rth@redhat.com>
4666
4667         PR target/19496
4668         * config/i386/i386.c (ix86_expand_fp_movcc): Fail for LTGT and UNEQ.
4669
4670 2005-01-18  Marc Espie  <espie@openbsd.org>
4671         * config/i386/openbsdelf.h: Typo.
4672
4673 2005-01-18  Richard Henderson  <rth@redhat.com>
4674
4675         * config/i386/i386.c (ix86_expand_fp_movcc): Remove TARGET_IEEE_FP
4676         special case for sse.
4677         * config/i386/predicates.md (sse_comparison_operator): Likewise.
4678
4679 2005-01-18  Dorit Naishlos  <dorit@il.ibm.com>
4680
4681         * tree-inline.c (estimate_num_insns_1): Added cases for
4682         ALIGN_INDIRECT_REF, MISALIGNED_INDIRECT_REF, and REALIGN_LOAD_EXPR.
4683
4684 2005-01-18  Eric Botcazou  <ebotcazou@libertysurf.fr>
4685
4686         PR rtl-optimization/19296
4687         * combine.c (simplify_comparison): Rewrite the condition under
4688         which a non-paradoxical SUBREG of a PLUS can be lifted when
4689         compared against a constant.
4690
4691 2005-01-18  Andi Kleen <ak@muc.de>
4692
4693         * c-typeck.c: (convert_for_assignment): Check warn_pointer_sign.
4694         * c.opt (-Wpointer-sign): Add.
4695         * doc/invoke.texi: (-Wpointer-sign): Add.
4696
4697 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
4698
4699         * config/i386/i386.c (override_options): Revert 2004-11-24 change.
4700         * config/i386/i386.md (fmodsf3, dremsf3, *sinsf2, *cossf2, sincossf3,
4701         *tansf3_1, tansf2, atan2sf3_1, atan2sf3, atansf2, asinsf2, acossf2,
4702         logsf2, log10sf2, log2sf2, log1psf2, logbsf2, ilogbsf2, expsf2,
4703         exp10sf2, exp2sf2, expm1sf2, rintsf2, floorsf2, ceilsf2, btruncsf2,
4704         nearbyintsf2): Disable for TARGET_SSE_MATH.  Leave patterns enabled
4705         for TARGET_MIX_SSE_I387.
4706         (fmoddf3, dremdf3, *sindf2, *sinextendsfdf2, *cosdf2, *cosextendsfdf2,
4707         sincosdf3, *sincosextendsfdf3, *tandf3_1, tandf2, atan2df3_1,
4708         atan2df3, atandf2, asindf2, acosdf2, logdf2, log10df2, log2df2,
4709         log1pdf2, logbdf2, expdf2, exp10df2, exp2df2, expm1df2, rintdf2,
4710         floordf2, ceildf2, btruncdf2, nearbyintdf2): Disable for
4711         (TARGET_SSE2 && TARGET_SSE_MATH).  Leave patterns enabled for
4712         TARGET_MIX_SSE_I387.
4713         (atan2sf3, atan2df3, atan2xf3): Remove register constraints
4714         from expander.
4715
4716 2005-01-18  Uros Bizjak  <uros@kss-loka.si>
4717
4718         PR target/19424
4719         * config/i386/mmx.md (*movv2sf_internal_rex64, *movv2sf_internal):
4720         Add movaps alternative for xmm reg->reg move.
4721
4722 2005-01-17  Jeff Law  <law@redhat.com>
4723
4724         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Clear SSA_NAME_VALUE
4725         at the end of the main DOM loop rather than just before DOM exits.
4726
4727 2005-01-17  Diego Novillo  <dnovillo@redhat.com>
4728
4729         PR tree-optimization/19121
4730         * tree-ssa-alias.c (compute_flow_sensitive_aliasing): When
4731         adding aliases to a name tag, also add them to the pointer's
4732         type tag.
4733         * tree-ssa-copy.c (merge_alias_info): Do not merge flow
4734         sensitive alias info at all.  Only check that the two pointers
4735         have compatible pointed-to sets.
4736         * tree-ssa.c (verify_name_tags): Verify that the alias set of
4737         a pointer's type tag is a superset of the alias set of the
4738         pointer's name tag.
4739
4740 2005-01-17  James E Wilson  <wilson@specifixinc.com>
4741
4742         PR target/19357
4743         * config/ia64/ia64.md (movxf): Handle general register source.  Adjust
4744         comment to document why.
4745
4746 2005-01-17  Richard Henderson  <rth@redhat.com>
4747
4748         * config/i386/sse.md (smaxv4sf3_finite, sse_vmsmaxv4sf3_finite,
4749         sminv4sf3_finite, sse_vmsminv4sf3_finite, smaxv2df3_finite,
4750         sse2_vmsmaxv2df3_finite, sminv2df3_finite,
4751         sse2_vmsminv2df3_finite): New.
4752         (smaxv4sf3, sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, smaxv2df3,
4753         sse2_vmsmaxv2df3, sminv2df3, sse2_vmsminv2df3): Remove commutative.
4754         Force op1 into register.
4755
4756 2005-01-17  Kelley Cook  <kcook@gcc.gnu.org>
4757
4758         * Makefile.in (STAGEMOVESTUFF): Stage all the stamp files to prevent
4759         bubblestrap from always rebuilding build directory.
4760
4761 2005-01-17  Ulrich Weigand  <uweigand@de.ibm.com>
4762
4763         * config/s390/s390.md ("*clc"): Remove incorrect '='.
4764         ("*cmpmem_short"): Likewise.
4765
4766 2005-01-17  Steven Bosscher  <stevenb@suse.de>
4767
4768         * basic-block.h: Document BB_* flags.
4769         * regrename.c (copyprop_hardreg_forward): Don't use BB_VISITED,
4770         use an sbitmap instead.
4771         * sched-rgn.c (compute_trg_info): Likewise.
4772
4773 2005-01-17  Richard Sandiford  <rsandifo@redhat.com>
4774
4775         * config.gcc (mips64*-*-linux*): Set the default abi to n32.  Remove
4776         redundant target_cpu_default and extra_parts lines.  Use the default
4777         "from-abi" ISA.
4778         * config/mips/linux64.h (DRIVER_DEFAULT_ABI_SELF_SPEC): Delete.
4779         (SUBTARGET_EXTRA_SPECS): Delete.
4780         (DRIVER_SELF_SPECS): Remove architecture lines.  Set the ABI directly.
4781         (SUBTARGET_ASM_SPEC): Remove -mabi=n32 and -mabi=64 mappings.
4782         * config/mips/t-linux64 (MULTILIB_DIRNAMES): Use "32" for -mabi=32
4783         and "n32" for -mabi=n32.
4784
4785 2005-01-17  Ian Lance Taylor  <ian@airs.com>
4786
4787         PR c/5675
4788         * c-typeck.c (build_c_cast): Revert patch of 2003-02-16: don't
4789         fold constant variables into initial values.
4790
4791 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
4792
4793         * tree-cfg.c (tree_can_merge_blocks_p): Reorder two checks.
4794
4795         * tree-cfg.c (tree_forwarder_block_p): Speed up by walking
4796         through the statements backward.
4797
4798 2005-01-17  Ian Lance Taylor  <ian@airs.com>
4799
4800         PR middle-end/13127:
4801         * tree-inline.c (expand_call_inline): Set TREE_NO_WARNING on
4802         a variable set to the return value of the inlined function.
4803
4804 2005-01-17  Mark Dettinger  <dettinge@de.ibm.com>
4805
4806         * rtlanal.c (rtx_cost): Assign cost of 0 to a SUBREG
4807         when modes are tieable.
4808
4809 2005-01-17  Ranjit Mathew  <rmathew@hotmail.com>
4810
4811         * gthr-posix.h (__gthread_active_p): Use pthread_cancel instead
4812         of pthread_create to find out if threads are enabled.
4813         * gthr-posix95.h (__gthread_active_p): Likewise.
4814
4815 2005-01-17  Paolo Bonzini  <bonzini@gnu.org>
4816
4817         * common.opt (-fnew-ra): Remove.
4818         * ra*.*: Remove.
4819         * toplev.h (flag_new_regalloc): Remove.
4820         * Makefile.in (ra*.*): Don't mention.
4821         * passes.c (rest_of_handle_new_regalloc): Remove.
4822         (rest_of_handle_combine, rest_of_compilation): Always consider
4823         flag_new_regalloc as false.
4824         * doc/invoke.texi: Don't document -fnew-ra.
4825
4826 2005-01-17  Paolo Bonzini <bonzini@gnu.org>
4827
4828         * bb-reorder.c (fix_edges_for_rarely_executed_code): Remove
4829         last parameter to reg_scan.
4830         * loop.c (loop_optimize): Likewise.
4831         * passes.c (rest_of_handle_tracer, rest_of_handle_if_conversion,
4832         rest_of_handle_web, rest_of_handle_cfg, rest_of_handle_jump_bypass,
4833         rest_of_handle_life, rest_of_handle_cse, rest_of_handle_cse2,
4834         rest_of_handle_gcse, rest_of_handle_loop_optimize,
4835         rest_of_handle_loop2, rest_of_handle_jump2): Likewise.
4836         * regclass.c (reg_scan): Likewise, for the declaration.
4837         * rtl.h (reg_scan): Likewise, for the prototype.
4838
4839 2005-01-17  Kazu Hirata  <kazu@cs.umass.edu>
4840
4841         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Don't call
4842         mark_dfs_back_edges.
4843
4844 2005-01-16  Daniel Berlin  <dberlin@dberlin.org>
4845
4846         * tree-ssa-pre.c (add_to_sets): s1 may be NULL.
4847         (compute_avail): Uses don't go in tmp_gen.
4848
4849 2005-01-16  Steven Bosscher  <stevenb@suse.de>
4850
4851         * ggc-page.c (ggc_alloc_stat): Use __builtin_ctzl instead of a
4852         loop to look for a free slot in a page entry.
4853
4854 2005-01-16  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4855
4856         PR target/16304
4857         * defaults.h (TARGET_DEFERRED_OUTPUT_DEFS): Provide default.
4858         * toplev.c (compile_file): Call process_pending_assemble_output_defs
4859         just before targetm.asm_out.file_end.
4860         * tree.h (process_pending_assemble_output_defs): Declare.
4861         * varasm.c (assemble_output_def, process_pending_assemble_output_defs):
4862         New functions.
4863         (assemble_alias): Defer generation of assembly code for defines when
4864         TARGET_DEFERRED_OUTPUT_DEFS is true.
4865         * config/rs6000/aix41.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4866         * config/rs6000/aix43.h (TARGET_DEFERRED_OUTPUT_DEFS): Define.
4867         * doc/tm.texi (TARGET_DEFERRED_OUTPUT_DEFS): document.
4868
4869 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4870
4871         PR target/19336
4872         * pa.c (pa_scalar_mode_supported_p): New function.
4873         (TARGET_SCALAR_MODE_SUPPORTED_P): Define.
4874         * pa.h (MIN_UNITS_PER_WORD): Add comment.
4875
4876         * pa-protos.h (prefetch_operand): Delete.
4877         (prefetch_cc_operand, prefetch_nocc_operand): New declations.
4878         * pa.c (prefetch_operand): Delete.
4879         (prefetch_cc_operand, prefetch_nocc_operand): New functions.
4880         * pa.h (EXTRA_CONSTRAINT): Add `W' constraint.
4881         (PREDICATE_CODES): Delete prefetch_operand.  Add prefetch_cc_operand
4882         and prefetch_nocc_operand.
4883         * pa.md (prefetch): Rework to avoid reload problems handling short
4884         displacements when a cache control completer needs to be provided.
4885         (prefetch_32, prefetch_64): Delete.
4886         (prefetch_cc, prefetch_nocc): New patterns.
4887
4888 2005-01-15  David Edelsohn  <edelsohn@gnu.org>
4889
4890         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Revert previous change.
4891
4892 2005-01-15  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
4893
4894         PR ada/19388
4895         * pa.c (pa_asm_output_aligned_common): Warn if specified alignment
4896         exceeds maximum alignment for global common data.
4897         * pa64-hpux.h (MAX_OFILE_ALIGNMENT): Define to 32768.
4898         * som.h (MAX_OFILE_ALIGNMENT): Likewise.
4899
4900 2004-01-15  Roger Sayle  <roger@eyesopen.com>
4901
4902         * tree-ssa-dom.c (extract_range_from_cond): Correct condition.
4903
4904 2004-01-15  Roger Sayle  <roger@eyesopen.com>
4905
4906         * harg-reg-set.h (reg_class_names): Prototype global array.
4907         * regclass.c (reg_class_names): Declare here and initialize to
4908         REG_CLASS_NAMES.
4909         (dump_regclass): Remove local declaration of reg_class_names.
4910         (regclass): Likewise.
4911         * cfg.c (dump_flow_info): Likewise.
4912         * ra-debug.c (reg_class_names): Likewise.
4913         * regrename.c (reg_class_names): Likewise.
4914         * reload.c (reg_class_names): Likewise.
4915         * reload1.c (spill_failure): Likewise.
4916         * config/m68hc11/m68hc11.c (reg_class_names): Likewise.
4917
4918 2005-01-15  Ulrich Weigand  <uweigand@de.ibm.com>
4919
4920         * config/s390/s390.md ("reload_outti"): Remove predicate for
4921         output operand.  Abort if operand is not a MEM.
4922         ("reload_outdi", "reload_outdf"): Likewise.
4923
4924 2005-01-15  Marc Espie  <espie@openbsd.org>
4925
4926         * config.gcc (*-*-openbsd*): Set HAS_LIBC_R for OpenBSD <= 3.2.
4927         (i[34567]86-*-openbsd*): Switch to ELF for OpenBSD >= 3.4.
4928         * config/openbsd.h:  Fix C++ includes for native configurations.
4929         Add proper OS_CPP_BUILTINS.  Fix libspec for recent OpenBSD.
4930         Add trampoline support.
4931         * config/i386/openbsdelf.h: New.
4932
4933 2005-01-15  Marc Espie  <espie@openbsd.org>
4934
4935         * collect2.c (main): Explicitly parse -dynamic-linker option.
4936
4937 2005-01-15  Jakub Jelinek  <jakub@redhat.com>
4938
4939         PR tree-optimization/19060
4940         * tree-ssa-dom.c (extract_range_from_cond) <case LT_EXPR, GT_EXPR>:
4941         Return 0 if op1 <= TYPE_MIN_VALUE () resp. op1 >= TYPE_MAX_VALUE ().
4942         (simplify_cond_and_lookup_avail_expr): Add assert for dummy == 0
4943         and handle extract_range_from_cond returning false.
4944         * fold-const.c (fold): Optimize comparisons with min/max even for
4945         width > HOST_BITS_PER_WIDE_INT.
4946
4947 2005-01-15  Ralf Corsepius  <ralf.corsepius@rtems.org>
4948
4949         * config/mips/rtems.h (MIPS_DEFAULT_GVALUE): Set to 0.
4950         * config/mips/t-rtems (MULTILIBS_DIRNAMES,MULTILIB_OPTIONS):
4951         Remove little endian multilib variants.
4952         Add mips32 multilib variant.
4953
4954 2005-01-15  Kazu Hirata  <kazu@cs.umass.edu>
4955
4956         * explow.c (copy_all_reg, stabilize): Remove.
4957         * expr.h: Remove the corresponding prototypes.
4958
4959         * rtlanal.c (regs_set_between_p): Remove.
4960         * rtl.h: Remove the corresponding prototype.
4961
4962 2005-01-14  David Edelsohn  <edelsohn@gnu.org>
4963
4964         * config/rs6000/rs6000.c (rs6k_nonimmediate_operand): Rename
4965         to rs6000_nonimmediate_operand.
4966         * config/rs6000/rs6000.h (PREDICATE_CODES): Rename
4967         rs6k_nonimmediate_operand to rs6000_nonimmediate_operand.
4968         * config/rs6000/rs6000.md (movsi_internal1): Rename predicate to
4969         rs6000_nonimmediate_operand.
4970         * config/rs6000/spe.md (movdf_e500_double): Rename predicate to
4971         rs6000_nonimmediate_operand.
4972
4973 2005-01-14  Andrew Pinski  <pinskia@physics.uc.edu>
4974
4975         * tree-ssa-alias.c (pass_may_alias): Add TODO_verify_stmts.
4976
4977 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
4978
4979         * config/rs6000/rs6000.h (CLASS_MAX_NREGS): DF goes in 1 register
4980         on e500v2.
4981         (CANNOT_CHANGE_MODE_CLASS): Restrict DI mode changes on e500v2.
4982         (PREDICATE_CODES): Add rs6k_nonimmediate_operand.
4983
4984         * config/rs6000/rs6000.c (invalid_e500_subreg): New.
4985         (rs6k_nonimmediate_operand): New.
4986         (rs6000_legitimate_offset_address_p): Handle DI modes on e500v2
4987         correctly.
4988         (legitimate_lo_sum_address_p): Same.
4989         (rs6000_legitimize_address): Same.
4990         (rs6000_legitimize_reload_address): Same.
4991         (rs6000_legitimate_address): Same.
4992         (spe_build_register_parallel): Pass DF and DC modes in a DI
4993         register.
4994
4995         * config/rs6000/rs6000.md ("*movsi_internal1"): Change predicate
4996         to rs6k_nonimmediate_operand.
4997
4998         * config/rs6000/spe.md ("*frob_df_di"): New.
4999         ("*frob_di_df"): New.
5000         ("*frob_di_df_2"): New.
5001         ("*mov_sidf_e500_subreg0"): New.
5002         ("*mov_sidf_e500_subreg4"): New.
5003         ("*movdf_e500_double"): Change predicate to
5004         rs6k_nonimmediate_operand.
5005
5006 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5007
5008         * postreload.c (move2add_note_store): Only call
5009         trunc_int_for_mode on scalar integers.
5010
5011 2005-01-14  Steven Bosscher  <stevenb@suse.de>
5012
5013         * tree-ssa-dce.c (visited_control_parents): New sbitmap to
5014         replace BB_VISITED uses.
5015         (find_obviously_necessary_stmts): Don't clear BB_VISITED.
5016         (propagate_necessity): Check the bitmap instead of BB_VISITED.
5017         (tree_dce_done): Free visited_control_parents.
5018         (perform_tree_ssa_dce): Allocate and clear it.
5019         * tree-ssa-pre.c (compute_antic_aux): Make non-recursive.
5020         (compute_antic): Iterate from here using a DFS.  Use an sbitmap
5021         instead of BB_VISITED.
5022
5023 2005-01-14  Kazu Hirata  <kazu@cs.umass.edu>
5024
5025         * c-tree.h, coverage.h, langhooks-def.h, optabs.h, output.h,
5026         rtl.h, targhooks.h, tree-flow.h, tree-mudflap.h, tree.h:
5027         Remove unused prototypes.
5028
5029 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5030
5031         * config/rs6000/rs6000.c (rs6000_stack_info): Fix caching of SPE
5032         64-bit register usage.
5033         (spe_func_has_64bit_regs_p): Add FIXME note.
5034
5035 2005-01-14  Aldy Hernandez  <aldyh@redhat.com>
5036
5037         * config/rs6000/rs6000.c (rs6000_generate_compare): Replace
5038         flag_finite_math_only with flag_unsafe_math_optimizations.
5039
5040 2005-01-14  J. D. Johnston  <jjohnst@us.ibm.com>
5041
5042         * config/s390/tpf-unwind.h (s390_fallback_frame_state): Correct
5043         end-of-stack check.
5044         (__tpf_eh_return): Copy TPF private stack area from the module
5045         boundary stack frame.  Add check for when module addresses are
5046         equal, but no stub address is found.
5047
5048 2005-01-14  Richard Earnshaw  <rearnsha@arm.com>
5049
5050         PR target/7525
5051         * arm.h (struct machine_function): Add call_via field.
5052         (thumb_call_via_label): Declare.
5053         * arm.c (thumb_call_via_label): New variable.
5054         (thumb_call_reg_needed): New variable.
5055         (arm_output_function_epilogue): For Thumb code, output any per-function
5056         call-indirect trampolines.
5057         (thumb_call_via_reg): New function.
5058         (arm_file_end): New function.
5059         (TARGET_ASM_FILE_END): Call arm_file_end.
5060         (aof_file_end): Likewise.
5061         * arm-protos.h (thumb_call_via_reg): Declare.
5062         * arm.md (call_reg_thumb, call_value_reg_thumb): Call
5063         thumb_call_via_reg in normal case.
5064
5065 2005-01-14  Jakub Jelinek  <jakub@redhat.com>
5066
5067         PR middle-end/19084
5068         PR rtl-optimization/19348
5069         * recog.c (peephole2_optimize): Do global life update if some peephole
5070         decides it doesn't need at least one of its inputs and that change
5071         influences liveness at the start of the basic block.
5072
5073         * basic-block.h (EXECUTE_IF_AND_COMPL_IN_REG_SET): Needs 2 REGSET
5074         arguments instead of 1.
5075
5076 2005-01-14  Eric Botcazou  <ebotcazou@libertysurf.fr>
5077
5078         PR middle-end/18820
5079         * varasm.c (initializer_constant_valid_p) <ADDR_EXPR>: Return
5080         zero for nested functions needing a static chain or functions
5081         with a non-constant address.
5082
5083 2005-01-13  Roger Sayle  <roger@eyesopen.com>
5084
5085         * simplify-rtx.c (simplify_binary_operation) <AND>: Optimize
5086         (and (sign_extend X) C) into (zero_extend (and X C)).
5087
5088 2005-01-13  David O'Brien  <obrien@FreeBSD.org>
5089
5090         * config/freebsd-spec.h:  Make KSE pthread lib logic the default.
5091
5092 2005-01-13  Richard Henderson  <rth@redhat.com>
5093
5094         PR target/19009
5095         PR target/19250
5096         PR target/19252
5097         * config/i386/i386.md (cmpdf, cmpsf, bunordered, bordered, buneq,
5098         bunge, bungt, bunle, bunlt, bltgt): Enable for TARGET_SSE_MATH,
5099         not just TARGET_SSE.
5100         (cmpfp_i_387): Rename from cmpfp_i.  Move after sse patterns.
5101         (cmpfp_i_mixed): Rename from cmpfp_i_sse; use for TARGET_MIX_SSE_I387.
5102         (cmpfp_i_sse): Rename from cmpfp_i_sse_only; use for TARGET_SSE_MATH.
5103         (cmpfp_iu_mixed, cmpfp_iu_sse, cmpfp_iu_387): Similarly.
5104         (fp_jcc_1_mixed, fp_jcc_1_sse, fp_jcc_1_387): Similarly.
5105         (fp_jcc_2_mixed, fp_jcc_2_sse, fp_jcc_2_387): Similarly.
5106         (fp_jcc_3_387, fp_jcc_4_387, fp_jcc_5_387, fp_jcc_6_387,
5107         fp_jcc_7_387, fp_jcc_8_387): Rename from fp_jcc_N.
5108         (movdicc_c_rex64): Rename with '*'.
5109         (movsfcc, movdfcc): Add checks for 387 and sse math to condition.
5110         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): New.
5111         (movsfcc_1_387): Rename from movsfcc_1.
5112         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): New.
5113         (movdfcc_1, movdfcc_1_rex64): Add check for 387.
5114         (sminsf3, smaxsf3, smindf3, smaxdf3): New.
5115         (minsf3, minsf, minsf_nonieee, minsf_sse, mindf3, mindf,
5116         mindf_nonieee, mindf_sse, maxsf3, maxsf, maxsf_nonieee, maxsf_sse,
5117         maxdf3, maxdf, maxdf_nonieee, maxdf_sse, sse_movsfcc, sse_movsfcc_eq,
5118         sse_movdfcc, sse_movdfcc_eq, sse_movsfcc_const0_1,
5119         sse_movsfcc_const0_2, sse_movsfcc_const0_3, sse_movsfcc_const0_4,
5120         sse_movdfcc_const0_1, sse_movdfcc_const0_2, sse_movdfcc_const0_3,
5121         sse_movdfcc_const0_4): Remove.
5122         * config/i386/i386.c (ix86_expand_fp_movcc): For TARGET_SSE_MATH,
5123         recognize min/max early.  Update for changed sse cmove patterns.
5124         (ix86_split_sse_movcc): New.
5125         * config/i386/i386-protos.h: Update.
5126
5127 2005-01-13  Steven Bosscher  <stevenb@suse.de>
5128
5129         * tree-ssa-dse.c (fix_phi_uses): Use SSA operand iterators.
5130         (fix_stmt_v_may_defs): Likewise.
5131
5132 2005-01-13  Richard Henderson  <rth@redhat.com>
5133
5134         * config/i386/i386.c (ix86_expand_fp_absneg_operator): Use elt_mode
5135         for converting the mask.
5136
5137 2005-01-13  David Edelsohn  <edelsohn@gnu.org>
5138
5139         * config/rs6000/aix52.h (CPLUSPLUS_CPP_SPEC): Change _XOPEN_SOURCE
5140         definition to 600.
5141
5142 2005-01-13  Richard Henderson  <rth@redhat.com>
5143
5144         * config/i386/i386.c (IX86_BUILTIN_MOVQ, IX86_BUILTIN_LOADD,
5145         IX86_BUILTIN_STORED, IX86_BUILTIN_MOVQ2DQ,
5146         IX86_BUILTIN_MOVDQ2Q): Remove.
5147         (IX86_BUILTIN_VEC_EXT_V4SI): New.
5148         (ix86_init_mmx_sse_builtins, ix86_expand_builtin): Update to match.
5149         (ix86_expand_vector_extract): For V4S[FI], extract element 0 after
5150         shuffling.
5151         * config/i386/sse.md (sse_concatv2sf): Accept zero operand 2.
5152         (sse2_pextrw): Fix immediate constraint.
5153         (sse2_loadq, sse2_loadq_rex64): Remove.
5154         * config/i386/emmintrin.h (_mm_cvtsi128_si32, _mm_cvtsi128_si64x):
5155         Use __builtin_ia32_vec_ext_<size>.
5156         (_mm_cvtsi32_si128, _mm_cvtsi64x_si128): Use _mm_set_epi<size>.
5157
5158 2005-01-13  Aldy Hernandez  <aldyh@redhat.com>
5159
5160         * function.c (assign_parm_setup_block): Look inside original
5161         entry_parm when inspecting PARALLEL.
5162
5163 2005-01-13  Ralf Corsepius  <ralf.corsepius@rtems.org>
5164             Joel Sherrill  <joel@oarcorp.com>
5165
5166         PR target/19399
5167         * gthr-rtems.h (__gthread_recursive_mutex_t): New type.
5168         (__GTHREAD_RECURSIVE_MUTEX_INIT_FUNCTION): Define to
5169         rtems_gxx_recursive_mutex_init.
5170         (__gthread_recursive_mutex_lock): New function.
5171         (__gthread_recursive_mutex_trylock): Likewise.
5172         (__gthread_recursive_mutex_unlock): Likewise.
5173
5174 2005-01-13  Ralf Corsepius <ralf.corsepius@rtems.org>
5175
5176         * config/i386/t-rtems-i386: Multilib on -mtune instead of -mcpu.
5177
5178 2005-01-13  Jan Beulich  <jbeulich@novell.com>
5179
5180         * config/ia64/ia64.md (ashlti3, ashlti3_internal): New.
5181         (ashrti3_internal): Indicate output is early clobber. Generate result
5182         into output rather than first input. Use move for low word of output
5183         if shift count is exactly 64.
5184         (lshrti3_internal): Likewise.
5185
5186 2005-01-13  Hans-Peter Nilsson  <hp@bitrange.com>
5187
5188         PR target/18329
5189         PR target/18330
5190         * reload1.c (delete_output_reload): Don't delete an output reload
5191         if the pseudo lives longer than a single basic block.  Adjust and
5192         improve wording of comment.
5193
5194 2005-01-12  Andrew Pinski  <pinskia@physics.uc.edu>
5195
5196         PR target/19334
5197         * config/darwin.c (machopic_select_section): Use TYPE_SIZE_UNIT instead
5198         of TYPE_SIZE where we mean the number of bytes.
5199
5200 2005-01-12  Aldy Hernandez  <aldyh@redhat.com>
5201
5202         * function.c (assign_parm_setup_block): Relax condition on
5203         multi-register optimization.
5204
5205 2005-01-12  Nick Clifton  <nickc@redhat.com>
5206
5207         * config/sh/sh.md (udivsi3_sh2a, divsi3_sh2a): Give these patterns
5208         an "in_delay_slot" attribute of "no" to prevent them being used in
5209         delay slots.  This is forbidden because they might generate
5210         exceptions.
5211
5212 2005-01-12  Alan Modra  <amodra@bigpond.net.au>
5213
5214         PR target/19389
5215         * config/rs6000/rs6000.md (movtf_internal): Replace r->o and m->r
5216         with r->Y and Y->r.
5217
5218 2005-01-12  Nick Clifton  <nickc@redhat.com>
5219
5220         * config/iq2000/iq2000.h (ASM_SPEC): Undefine (to stop -Qy being
5221         passed on to GAS) but do not define, as GAS no longer supports or
5222         needs the -m2000 option.
5223
5224 2005-01-11  Roger Sayle  <roger@eyesopen.com>
5225
5226         * builtins.c (fold_builtin_fabs): Convert argument to the appropriate
5227         type as args of unprototyped builtins aren't automatically promoted.
5228         (fold_builtin_abs): Likewise.
5229
5230 2005-01-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
5231
5232         * Makefile.in: Set a `build-warn' variable.
5233
5234 2005-01-11  Zdenek Dvorak  <dvorakz@suse.cz>
5235
5236         PR tree-optimization/17949
5237         * tree-ssa-loop-ivopts.c (may_be_unaligned_p): New function.
5238         (find_interesting_uses_address): Use it.
5239
5240 2005-01-11  Aldy Hernandez  <aldyh@redhat.com>
5241
5242         * regrename.c (kill_value): Handle subreg's that won't simplify.
5243
5244 2005-01-11  Richard Henderson  <rth@redhat.com>
5245
5246         PR target/13366
5247         * config/i386/i386.h (enum ix86_builtins): Move ...
5248         * config/i386/i386.c: ... here.
5249         (IX86_BUILTIN_MOVDDUP, IX86_BUILTIN_MMX_ZERO, IX86_BUILTIN_PEXTRW,
5250         IX86_BUILTIN_PINSRW, IX86_BUILTIN_LOADAPS, IX86_BUILTIN_LOADSS,
5251         IX86_BUILTIN_STORESS, IX86_BUILTIN_SSE_ZERO, IX86_BUILTIN_PEXTRW128,
5252         IX86_BUILTIN_PINSRW128, IX86_BUILTIN_LOADAPD, IX86_BUILTIN_LOADSD,
5253         IX86_BUILTIN_STOREAPD, IX86_BUILTIN_STORESD,  IX86_BUILTIN_STOREHPD,
5254         IX86_BUILTIN_STORELPD, IX86_BUILTIN_SETPD1, IX86_BUILTIN_SETPD,
5255         IX86_BUILTIN_CLRPD, IX86_BUILTIN_LOADPD1, IX86_BUILTIN_LOADRPD,
5256         IX86_BUILTIN_STOREPD1, IX86_BUILTIN_STORERPD, IX86_BUILTIN_LOADDQA,
5257         IX86_BUILTIN_STOREDQA, IX86_BUILTIN_CLRTI,
5258         IX86_BUILTIN_LOADDDUP): Remove.
5259         (IX86_BUILTIN_VEC_INIT_V2SI, IX86_BUILTIN_VEC_INIT_V4HI,
5260         IX86_BUILTIN_VEC_INIT_V8QI, IX86_BUILTIN_VEC_EXT_V2DF,
5261         IX86_BUILTIN_VEC_EXT_V2DI, IX86_BUILTIN_VEC_EXT_V4SF,
5262         IX86_BUILTIN_VEC_EXT_V8HI, IX86_BUILTIN_VEC_EXT_V4HI,
5263         IX86_BUILTIN_VEC_SET_V8HI, IX86_BUILTIN_VEC_SET_V4HI): New.
5264         (ix86_init_builtins): Make static.
5265         (ix86_init_mmx_sse_builtins): Update for changed builtins.
5266         (ix86_expand_binop_builtin): Only use ix86_fixup_binary_operands
5267         if all the modes match.  Otherwise, fake it.
5268         (get_element_number, ix86_expand_vec_init_builtin,
5269         ix86_expand_vec_ext_builtin, ix86_expand_vec_set_builtin): New.
5270         (ix86_expand_builtin): Make static.  Update for changed builtins.
5271         (ix86_expand_vector_move_misalign): Use sse2_loadlpd with zero
5272         operand instead of sse2_loadsd.  Cast sse1 fallback to V4SFmode.
5273         (ix86_expand_vector_init_duplicate): New.
5274         (ix86_expand_vector_init_low_nonzero): New.
5275         (ix86_expand_vector_init_one_var, ix86_expand_vector_init_general):
5276         Split out from ix86_expand_vector_init; handle integer modes.
5277         (ix86_expand_vector_init): Use them.
5278         (ix86_expand_vector_set, ix86_expand_vector_extract): New.
5279         * config/i386/i386-protos.h: Update.
5280         * config/i386/predicates.md (reg_or_0_operand): New.
5281         * config/i386/mmx.md (mov<MMXMODEI>_internal): Add 'r' variants.
5282         (movv2sf_internal): Likewise.  And a splitter to match them all.
5283         (vec_dupv2sf, mmx_concatv2sf, vec_setv2sf, vec_extractv2sf,
5284         vec_initv2sf, vec_dupv4hi, vec_dupv2si, mmx_concatv2si, vec_setv2si,
5285         vec_extractv2si, vec_initv2si, vec_setv4hi, vec_extractv4hi,
5286         vec_initv4hi, vec_setv8qi, vec_extractv8qi, vec_initv8qi): New.
5287         (mmx_pinsrw): Fix operand ordering.
5288         * config/i386/sse.md (movv4sf splitter): Use direct pattern,
5289         rather than sse_loadss expander.
5290         (movv2df splitter): Similarly.
5291         (sse_loadss, sse_loadlss): Remove.
5292         (vec_dupv4sf, sse_concatv2sf, sse_concatv4sf, vec_extractv4sf_0): New.
5293         (vec_setv4sf, vec_setv2df): Use ix86_expand_vector_set.
5294         (vec_extractv4sf, vec_extractv2df): Use ix86_expand_vector_extract.
5295         (sse3_movddup): Rename with '*'.
5296         (sse3_movddup splitter): Use gen_rtx_REG instead of gen_lowpart.
5297         (sse2_loadsd): Remove.
5298         (vec_dupv2df_sse3): Rename from sse3_loadddup.
5299         (vec_dupv2df, vec_concatv2df_sse3, vec_concatv2df): New.
5300         (sse2_pinsrw): Fix argument ordering.
5301         (sse2_loadld, sse2_loadq): Add sse1 alternatives.
5302         (sse2_stored): Remove 'r' destination.
5303         (vec_dupv4si, vec_dupv2di, sse2_concatv2si, sse1_concatv2si,
5304         vec_concatv4si_1, vec_concatv2di, vec_setv2di, vec_extractv2di,
5305         vec_initv2di, vec_setv4si, vec_extractv4si, vec_initv4si,
5306         vec_setv8hi, vec_extractv8hi, vec_initv8hi, vec_setv16qi,
5307         vec_extractv16qi, vec_initv16qi): New.
5308
5309         * config/i386/emmintrin.h (__m128i, __m128d): Use typedef, not define.
5310         (_mm_set_sd, _mm_set1_pd, _mm_setzero_pd, _mm_set_epi64x,
5311         _mm_set_epi32, _mm_set_epi16, _mm_set_epi8, _mm_setzero_si128): Use
5312         constructor form.
5313         (_mm_load_pd, _mm_store_pd): Use plain dereference.
5314         (_mm_load_si128, _mm_store_si128): Likewise.
5315         (_mm_load1_pd): Use _mm_set1_pd.
5316         (_mm_load_sd): Use _mm_set_sd.
5317         (_mm_store_sd, _mm_storeh_pd): Use __builtin_ia32_vec_ext_v2df.
5318         (_mm_store1_pd, _mm_storer_pd): Use _mm_store_pd.
5319         (_mm_set_epi64): Use _mm_set_epi64x.
5320         (_mm_set1_epi64x, _mm_set1_epi64, _mm_set1_epi32, _mm_set_epi16,
5321         _mm_set1_epi8, _mm_setr_epi64, _mm_setr_epi32, _mm_setr_epi16,
5322         _mm_setr_epi8): Use _mm_set_foo form.
5323         (_mm_loadl_epi64, _mm_movpi64_epi64, _mm_move_epi64): Use _mm_set_epi64.
5324         (_mm_storel_epi64, _mm_movepi64_pi64): Use __builtin_ia32_vec_ext_v2di.
5325         (_mm_extract_epi16): Use __builtin_ia32_vec_ext_v8hi.
5326         (_mm_insert_epi16): Use __builtin_ia32_vec_set_v8hi.
5327         * config/i386/mmintrin.h (_mm_setzero_si64): Use plain cast.
5328         (_mm_set_pi32): Use __builtin_ia32_vec_init_v2si.
5329         (_mm_set_pi16): Use __builtin_ia32_vec_init_v4hi.
5330         (_mm_set_pi8): Use __builtin_ia32_vec_init_v8qi.
5331         (_mm_set1_pi16, _mm_set1_pi8): Use _mm_set_piN variant.
5332         * config/i386/pmmintrin.h (_mm_loaddup_pd): Use _mm_load1_pd.
5333         (_mm_movedup_pd): Use _mm_shuffle_pd.
5334         * config/i386/xmmintrin.h (_mm_setzero_ps, _mm_set_ss,
5335         _mm_set1_ps, _mm_set_ps, _mm_setr_ps): Use constructor form.
5336         (_mm_cvtpi16_ps, _mm_cvtpu16_ps, _mm_cvtpi8_ps, _mm_cvtpu8_ps,
5337         _mm_cvtps_pi8, _mm_cvtpi32x2_ps): Avoid __builtin_ia32_mmx_zero;
5338         Use _mm_setzero_ps.
5339         (_mm_load_ss, _mm_load1_ps): Use _mm_set* form.
5340         (_mm_load_ps, _mm_loadr_ps): Use raw dereference.
5341         (_mm_store_ss): Use __builtin_ia32_vec_ext_v4sf.
5342         (_mm_store_ps): Use raw dereference.
5343         (_mm_store1_ps): Use _mm_storeu_ps.
5344         (_mm_storer_ps): Use _mm_store_ps.
5345         (_mm_extract_pi16): Use __builtin_ia32_vec_ext_v4hi.
5346         (_mm_insert_pi16): Use __builtin_ia32_vec_set_v4hi.
5347
5348 2005-01-11  Stan Shebs  <shebs@apple.com>
5349
5350         * config/rs6000/rs6000.c (machopic_output_stub): Issue
5351         ldu instead of lwzu if 64-bit -mdynamic-no-pic.
5352
5353 2005-01-11  Andrew Pinski  <pinskia@physics.uc.edu>
5354
5355         PR target/18761
5356         * config/rs6000/rs6000.c (rs6000_special_round_type_align):
5357         Skip all DECLs except for FIELD_DECLs.
5358
5359 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5360
5361         * config/s390/s390.c (override_options): Return error if
5362         -mbackchain, -mpacked-stack and -mhard-float are used together.
5363         (s390_va_start): Remove the backchain && packed-stack special case.
5364         (s390_gimplify_va_arg): Likewise.
5365         * doc/invoke.texi: Remove the ABI incompatibility note.
5366
5367 2005-01-11  Andreas Krebbel  <krebbel1@de.ibm.com>
5368
5369         * config/s390/s390.c (struct s390_frame_layout): Remove
5370         save_backchain_p.
5371         (s390_frame_info, s390_emit_prologue): Replace occurrences of
5372         save_backchain_p with TARGET_BACKCHAIN.
5373
5374 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
5375
5376         PR target/18916
5377         * builtins.c (std_gimplify_va_arg_expr): Adjust alignment of *ap.
5378         * expr.h (struct locate_and_pad_arg_data): Add "boundary".
5379         * function.c (locate_and_pad_parm): Set new field.
5380         (assign_parm_find_stack_rtl): Use it instead of FUNCTION_ARG_BOUNDARY.
5381         Tweak where_pad test to include "none".  Always set mem align for
5382         stack_parm.
5383         (assign_parm_adjust_stack_rtl): Discard stack_parm if alignment
5384         not sufficient for type.
5385         (assign_parm_setup_block): If stack_parm is zero on entry, always
5386         make a new stack local.  Block move old stack parm if necessary
5387         to new aligned stack local.
5388         (assign_parm_setup_stack): Use a block move to handle
5389         potentially misaligned entry_parm.
5390         (assign_parms_unsplit_complex): Specify required alignment when
5391         creating stack local.
5392         * calls.c (compute_argument_addresses): Override alignment of stack
5393         arg calculated from its type with the alignment given by
5394         FUNCTION_ARG_BOUNDARY.
5395         (store_one_arg): Likewise.
5396
5397 2005-01-11  Jan Beulich  <jbeulich@novell.com>
5398
5399         * config/ia64/ia64.md (zero_extendsidi2): Replace zxt4 by addp4.
5400         Change respective itanium_class attribute to ialu.
5401         (shladdp4_internal): New.
5402         * config/ia64/predicates.md (shladd_log2_operand): New.
5403
5404 2005-01-11  Richard Henderson  <rth@redhat.com>
5405
5406         * expr.c (store_constructor): Use rtvec_alloc instead of
5407         alloca+gen_rtvec_v, and an incorrect number passed to alloca.
5408
5409 2005-01-11  Kazu Hirata  <kazu@cs.umass.edu>
5410
5411         * config/alpha/alpha.c, config/i386/mmx.md: Fix comment typos.
5412
5413 2005-01-11  Alan Modra  <amodra@bigpond.net.au>
5414
5415         * varasm.c (default_section_type_flags_1): Don't set SECTION_SMALL.
5416         * config/ia64/ia64.c (TARGET_SECTION_TYPE_FLAGS): Define.
5417         (TARGET_RWRELOC): Define.
5418         (ia64_rwreloc_section_type_flags): Delete.
5419         (ia64_section_type_flags): New function.
5420         * config/ia64/hpux.h (TARGET_SECTION_TYPE_FLAGS): Don't define.
5421         (TARGET_RWRELOC): Define.
5422
5423 2005-01-10  David Mosberger  <davidm@hpl.hp.com>
5424
5425         PR target/18987
5426         * config/ia64/ia64.c (process_set): For alloc insn, only call
5427         process_epilogue is !frame_pointer_needed.
5428
5429 2005-01-10  Roger Sayle  <roger@eyesopen.com>
5430
5431         PR c++/19355
5432         * c-common.c (c_common_truthvalue_conversion): TRUTH_NOT_EXPR is a
5433         unary operator and can't be treated as a binary/comparison operator.
5434
5435 2005-01-10  Richard Henderson  <rth@redhat.com>
5436
5437         * config/i386/i386.c (ix86_function_value): Use type_natural_mode.
5438         (ix86_return_in_memory): Likewise.
5439         (function_arg_advance):  Likewise.  Mirror structure in function_arg
5440         for choosing register to advance.
5441
5442 2005-01-10  Kazu Hirata  <kazu@cs.umass.edu>
5443
5444         * tree-vectorizer.c, tree.def: Fix comment typos.
5445
5446 2005-01-10  Mark Dettinger  <dettinge@de.ibm.com>
5447
5448         * config/s390/s390.c (struct processor_costs): 4 new fields:
5449         ddbr, ddr, debr, der.
5450         (s390_rtx_costs): More precise handling of divide instructions.
5451
5452 2005-01-10  David Edelsohn  <edelsohn@gnu.org>
5453
5454         * config/rs6000/t-aix43 (BOOT_LDFLAGS): Define.
5455
5456 2005-01-10  Jan Beulich  <jbeulich@novell.com>
5457
5458         * config/ia64/ia64.c (ia64_in_small_data_p): Also handle the section
5459         names resulting from -ffunction-sections/-fdata-sections and linkonce
5460         ones.
5461         * varasm.c (default_section_type_flags_1): Also set SECTION_SMALL
5462         based on the section name. Rearrange the section name comparison logic
5463         slightly so that each section name is compared against at most once.
5464
5465 2005-01-10  Ben Elliston  <bje@au.ibm.com>
5466
5467         * doc/invoke.texi (Code Gen Options): Add PowerPC to the list of
5468         targets for which -fPIC reduces limitations on the GOT size.
5469
5470 2005-01-09  Falk Hueffner  <falk@debian.org>
5471
5472         * fold-const.c (fold): Also handle EXACT_DIV_EXPR when folding
5473         X/C1 cmpop C2.
5474
5475 2005-01-09  David Edelsohn  <edelsohn@gnu.org>
5476
5477         PR target/18720
5478         * collect2.c (main): Set aixrtl_flag for -brtl option.
5479         (resolve_lib_name): Search for .so file extension before .a
5480         if aixrtl_flag set.
5481
5482 2005-01-09  Dorit Naishlos  <dorit@il.ibm.com>
5483
5484         * tree-vectorizer.c (vect_enhance_data_refs_alignment): Add dump prints.
5485         (vect_analyze_data_refs_alignment): Add dump prints.
5486
5487 2005-01-09  Ira Rosen  <irar@il.ibm.com>
5488
5489         * tree-vectorizer.c (vect_analyze_offset_expr): Use
5490         expr_invariant_in_loop_p.
5491         Initialize outputs first thing in the function.
5492         (vect_update_ivs_after_vectorizer): Call initial_condition_in_loop_num.
5493         (vect_is_simple_iv_evolution): Call initial_condition_in_loop_num.
5494         (vect_analyze_pointer_ref_access): Check that the initial condition of
5495         the access function is loop invariant.
5496
5497 2005-01-09  Richard Henderson  <rth@redhat.com>
5498
5499         * config/i386/i386.c (bdesc_2arg): Update names for mmx_ prefixes.
5500         (ix86_expand_builtin): Likewise.  Frob MASKMOVQ wrt the input mem
5501         just like MASKMOVDQU.  Return plain zero for MMX_ZERO.
5502         * config/i386/i386.md (MMXMODEI, mov<MMXMODEI>,
5503         mov<MMXMODEI>_internal_rex64, mov<MMXMODEI>_internal, movv2sf,
5504         movv2sf_internal_rex64, movv2sf_internal, MMXMODE,
5505         movmisalign<MMXMODE>, mmx_pmovmskb, mmx_maskmovq, mmx_maskmovq_rex,
5506         sse_movntdi, addv8qi3, addv4hi3, addv2si3, mmx_adddi3, ssaddv8qi3,
5507         ssaddv4hi3, usaddv8qi3, usaddv4hi3, subv8qi3, subv4hi3, subv2si3,
5508         mmx_subdi3, sssubv8qi3, sssubv4hi3, ussubv8qi3, ussubv4hi3,
5509         mulv4hi3, smulv4hi3_highpart, umulv4hi3_highpart, mmx_pmaddwd,
5510         sse2_umulsidi3, mmx_iordi3, mmx_xordi3, mmx_anddi3, mmx_nanddi3,
5511         mmx_uavgv8qi3, mmx_uavgv4hi3, mmx_psadbw, mmx_pinsrw, mmx_pinsrw,
5512         mmx_pextrw, mmx_pshufw, eqv8qi3, eqv4hi3, eqv2si3, gtv8qi3, gtv4hi3,
5513         gtv2si3, umaxv8qi3, smaxv4hi3, uminv8qi3, sminv4hi3, ashrv4hi3,
5514         ashrv2si3, lshrv4hi3, lshrv2si3, mmx_lshrdi3, ashlv4hi3, ashlv2si3,
5515         mmx_ashldi3, mmx_packsswb, mmx_packssdw, mmx_packuswb, mmx_punpckhbw,
5516         mmx_punpckhwd, mmx_punpckhdq, mmx_punpcklbw, mmx_punpcklwd,
5517         mmx_punpckldq, emms, addv2sf3, subv2sf3, subrv2sf3, gtv2sf3, gev2sf3,
5518         eqv2sf3, pfmaxv2sf3, pfminv2sf3, mulv2sf3, femms, pf2id, pf2iw,
5519         pfacc, pfnacc, pfpnacc, pi2fw, floatv2si2, pfrcpv2sf2, pfrcpit1v2sf3,
5520         pfrcpit2v2sf3, pfrsqrtv2sf2, pfrsqit1v2sf3, pmulhrwv4hi3, pswapdv2si2,
5521         pswapdv2sf2): Move to mmx.md; rename as necessary with leading
5522         mmx_ prefix.
5523         (mmx_clrdi, pavgusb): Remove.
5524         (ldmxcsr, stmxcsr, sfence, sfence_insn): Move to sse.md; rename
5525         with leading sse_ prefix.
5526         * config/i386/sse.md: Receive them.
5527         * config/i386/mmx.md: New file.
5528         (MMXMODE12, MMXMODE24, mmxvecsize): New.
5529         (subrv2sf3): Turn into expander for normal subtraction.
5530         (mmx_addv2sf3, mmx_mulv2sf3, mmx_smaxv2sf3, mmx_sminv2sf3,
5531         mmx_eqv2sf3, mmx_mulv4hi3, mmx_smulv4hi3_highpart,
5532         mmx_umulv4hi3_highpart, mmx_pmaddwd, mmx_pmulhrwv4hi3, sse2_umulsidi3,
5533         mmx_umaxv8qi3, mmx_smaxv4hi3, mmx_uminv8qi3, mmx_sminv4hi3): Mark
5534         commutative; use ix86_binary_operator_ok.
5535         (mmx_add<MMXMODEI>3, mmx_ssadd<MMXMODE12>3, mmx_usadd<MMXMODE12>3,
5536         mmx_sub<MMXMODEI>3, mmx_sssub<MMXMODE12>3, mmx_ussub<MMXMODE12>3
5537         mmx_ashr<MMXMODE24>3, mmx_lshr<MMXMODE23>3, mmx_ashl<MMXMODE24>3
5538         mmx_eq<MMXMODEI>3, mmx_gt<MMXMODEI>3, mmx_and<MMXMODEI>3,
5539         mmx_nand<MMXMODEI>3, mmx_ior<MMXMODEI>3, mmx_xor<MMXMODEI>3):
5540         Macroize from existing patterns; use ix86_binary_operator_ok.
5541         (mmx_packsswb, mmx_packssdw, mmx_packuswb): Add memory alternative.
5542         (mmx_punpckhbw, mmx_punpcklbw, mmx_punpckhwd, mmx_punpcklwd,
5543         mmx_punpckhdq, mmx_punpckhdq, mmx_punpckldq): Likewise.  Model
5544         with vec_select+vec_concat.
5545         (mmx_pshufw, mmx_pshufw_1): Likewise.
5546         (mmx_uavgv8qi3): Merge pavgusb.  Model correcty.
5547         (mmx_uavgv4hi3): Model correctly.
5548         * config/i386/mmintrin.h (_mm_and_si64, _mm_andnot_si64, _mm_or_si64,
5549         _mm_xor_si64): Remove casts.
5550
5551 2005-01-09  Zdenek Dvorak  <dvorakz@suse.cz>
5552
5553         PR tree-optimization/19224
5554         * tree-scalar-evolution.c (get_instantiated_value,
5555         set_instantiated_value): New functions.
5556         (instantiate_parameters_1): Cache the results.
5557         (instantiate_parameters, resolve_mixers): Initialize and free
5558         the cache.
5559
5560 2005-01-08  David Edelsohn  <edelsohn@gnu.org>
5561
5562         * config/i386/i386.md (addhi_4): Correct reference in comment.
5563         (addqi_4): Same.
5564
5565 2005-01-08  Richard Henderson  <rth@redhat.com>
5566
5567         * config/i386/emmintrin.h (_mm_cvtsi128_si32): Move earlier.
5568         (_mm_cvtsi128_si64x): Likewise.
5569         (_mm_srl_epi64, _mm_srl_epi32, _mm_srl_epi16, _mm_sra_epi32,
5570         _mm_sra_epi16, _mm_sll_epi64, _mm_sll_epi32, _mm_sll_epi16): Use
5571         the _mm_{srl,sll}i_foo counterpart, and _mm_cvtsi128_si32.
5572         * config/i386/i386-modes.def: Add V16HI, V32QI, V4DF, V8SF.
5573         * config/i386/i386-protos.h: Update.
5574         * config/i386/i386.c (print_operand): Add 'H'.
5575         (ix86_fixup_binary_operands): Split out from ...
5576         (ix86_expand_binary_operator): ... here.
5577         (ix86_fixup_binary_operands_no_copy): New.
5578         (ix86_expand_fp_absneg_operator): Handle vector mode results.
5579         (bdesc_2arg): Update names for sse{,2,3}_ prefixes.
5580         (ix86_init_mmx_sse_builtins): Remove *maskncmp* special cases.
5581         (safe_vector_operand): Use CONST0_RTX.
5582         (ix86_expand_binop_builtin): Use ix86_fixup_binary_operands.
5583         (ix86_expand_builtin): Merge CODE_FOR_sse2_maskmovdqu_rex64 and
5584         CODE_FOR_sse2_maskmovdqu.  Special case SSE version of MASKMOVDQU
5585         expansion.  Update names for sse{,2,3}_ prefixes.  Remove *maskncmp*
5586         special cases.
5587         * config/i386/i386.h (IX86_BUILTIN_CMPNGTSS): New.
5588         (IX86_BUILTIN_CMPNGESS): New.
5589         * config/i386/i386.md (UNSPEC_FIX_NOTRUNC): New.
5590         (attr type): Add sselog1.
5591         (attr unit, attr memory): Handle it.
5592         (movti, movti_internal, movti_rex64): Move near other integer moves.
5593         (movtf, movtf_internal): Move near other fp moves.
5594         (SSEMODE, SSEMODEI, vec_setv2df, vec_extractv2df, vec_initv2df,
5595         vec_setv4sf, vec_extractv4sf, vec_initv4sf, movv4sf, movv4sf_internal,
5596         movv2df, movv2df_internal, mov<SSEMODEI>, mov<SSEMODEI>_internal,
5597         movmisalign<SSEMODE>, sse_movups_1, sse_movmskps, sse_movntv4sf,
5598         sse_movhlps, sse_movlhps, sse_storehps, sse_loadhps, sse_storelps,
5599         sse_loadlps, sse_loadss, sse_loadss_1, sse_movss, sse_storess,
5600         sse_shufps, addv4sf3, vmaddv4sf3, subv4sf3, vmsubv4sf3, negv4sf2,
5601         mulv4sf3, vmmulv4sf3, divv4sf3, vmdivv4sf3, rcpv4sf2, vmrcpv4sf2,
5602         rsqrtv4sf2, vmrsqrtv4sf2, sqrtv4sf2, vmsqrtv4sf2, sse_andv4sf3,
5603         sse_nandv4sf3, sse_iorv4sf3, sse_xorv4sf3, sse2_andv2df3,
5604         sse2_nandv2df3, sse2_iorv2df3, sse2_xorv2df3, sse2_andv2di3,
5605         sse2_nandv2di3, sse2_iorv2di3, sse2_xorv2di3, maskcmpv4sf3,
5606         vmmaskcmpv4sf3, sse_comi, sse_ucomi, sse_unpckhps, sse_unpcklps,
5607         smaxv4sf3, vmsmaxv4sf3, sminv4sf3, vmsminv4sf3, cvtpi2ps, cvtps2pi,
5608         cvttps2pi, cvtsi2ss, cvtsi2ssq, cvtss2si, cvtss2siq, cvttss2si,
5609         cvttss2siq, addv2df3, vmaddv2df3, subv2df3, vmsubv2df3, mulv2df3,
5610         vmmulv2df3, divv2df3, vmdivv2df3, smaxv2df3, vmsmaxv2df3, sminv2df3,
5611         vmsminv2df3, sqrtv2df2, vmsqrtv2df2, maskcmpv2df3, vmmaskcmpv2df3,
5612         sse2_comi, sse2_ucomi, sse2_movmskpd, sse2_pmovmskb, sse2_maskmovdqu,
5613         sse2_maskmovdqu_rex64, sse2_movntv2df, sse2_movntv2di, sse2_movntsi,
5614         cvtdq2ps, cvtps2dq, cvttps2dq, cvtdq2pd, cvtpd2dq, cvttpd2dq,
5615         cvtpd2pi, cvttpd2pi, cvtpi2pd, cvtsd2si, cvtsd2siq, cvttsd2si,
5616         cvttsd2siq, cvtsi2sd, cvtsi2sdq, cvtsd2ss, cvtss2sd, cvtpd2ps,
5617         cvtps2pd, addv16qi3, addv8hi3, addv4si3, addv2di3, ssaddv16qi3,
5618         ssaddv8hi3, usaddv16qi3, usaddv8hi3, subv16qi3, subv8hi3, subv4si3,
5619         subv2di3, sssubv16qi3, sssubv8hi3, ussubv16qi3, ussubv8hi3, mulv8hi3,
5620         smulv8hi3_highpart, umulv8hi3_highpart, sse2_umulsidi3,
5621         sse2_umulv2siv2di3, sse2_pmaddwd, sse2_uavgv16qi3, sse2_uavgv8hi3,
5622         sse2_psadbw, sse2_pinsrw, sse2_pextrw, sse2_pshufd, sse2_pshuflw,
5623         sse2_pshufhw, eqv16qi3, eqv8hi3, eqv4si3, gtv16qi3, gtv8hi3,
5624         gtv4si3, umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3, ashrv8hi3,
5625         ashrv4si3, lshrv8hi3, lshrv4si3, lshrv2di3, ashlv8hi3, ashlv4si3,
5626         ashlv2di3, sse2_ashlti3, sse2_lshrti3, sse2_unpckhpd, sse2_unpcklpd,
5627         sse2_packsswb, sse2_packssdw, sse2_packuswb, sse2_punpckhbw,
5628         sse2_punpckhwd, sse2_punpckhdq, sse2_punpcklbw, sse2_punpcklwd,
5629         sse2_punpckldq, sse2_punpcklqdq, sse2_punpckhqdq, sse2_movupd,
5630         sse2_movdqu, sse2_movdq2q, sse2_movdq2q_rex64, sse2_movq2dq,
5631         sse2_movq2dq_rex64, sse2_loadd, sse2_stored, sse2_storehpd,
5632         sse2_loadhpd, sse2_storelpd, sse2_loadlpd, sse2_movsd, sse2_loadsd,
5633         sse2_loadsd_1, sse2_storesd, sse2_shufpd, sse2_clflush, sse2_mfence,
5634         mfence_insn, sse2_lfence, lfence_insn, mwait, monitor, addsubv4sf3,
5635         addsubv2df3, haddv4sf3, haddv2df3, hsubv4sf3, hsubv2df3, movshdup,
5636         movsldup, lddqu, loadddup, movddup): Move to sse.md.  Any with
5637         non-optabs meanings renamed with an "sse{,2,3}_" prefix at the
5638         same time.
5639         (SSEPUSH, push<SSEPUSH>): Remove.
5640         (MMXPUSH, push<MMXPUSH>): Remove.
5641         (sse_movaps, sse_movaps_1, sse_movups): Remove.
5642         (sse2_movapd, sse2_movdqa, sse2_movq): Remove.
5643         (sse2_andti3, sse2_nandti3, sse2_iorti3, sse2_xorti3): Remove.
5644         (sse_clrv4sf, sse_clrv2df, sse2_clrti): Remove.
5645         (maskncmpv4sf3, vmmaskncmpv4sf3): Remove.
5646         (maskncmpv2df3, vmmaskncmpv2df3): Remove.
5647         (ashrv8hi3_ti, ashrv4si3_ti, lshrv8hi3_ti, lshrv4si3_ti): Remove.
5648         (lshrv2di3_ti, ashlv8hi3_ti, ashlv4si3_ti, ashlv2di3_ti): Remove.
5649         * config/i386/athlon.md (athlon_sselog_load): Handle sselog1.
5650         (athlon_sselog_load_k8, athlon_sselog, athlon_sselog_k8): Likewise.
5651         * config/i386/ppro.md (ppro_sse_div_V4SF_load): Fix memory attr.
5652         (ppro_sse_log_V4SF_load): Similarly.  Handle sselog1.
5653         (ppro_sse_log_V4SF): Handle sselog1.
5654         * config/i386/predicates.md (const_0_to_1_operand): New.
5655         (const_0_to_255_mul_8_operand): New.
5656         (const_1_to_31_operand): Rename from const_int_1_31_operand.
5657         (const_2_to_3_operand, const_4_to_7_operand): New.
5658         * config/i386/sse.md: New file.
5659         (SSEMODE12, SSEMODE24, SSEMODE124, SSEMODE248, ssevecsize): New.
5660         (sse_movups): Rename from sse_movups_1.
5661         (sse_loadlss): Rename from sse_loadss_1.
5662         (andv4sf3, iorv4sf3, xorv4sf3, andv2df3): Remove the sse prefix
5663         from the name.
5664         (negv4sf2): Use ix86_expand_fp_absneg_operator.
5665         (absv4sf2, negv2df, absv2df): New.
5666         (addv4sf3): Add expander to call ix86_fixup_binary_operands_no_copy.
5667         (subv4sf3, mulv4sf3, divv4sf3, smaxv4sf3, sminv4sf3, andv4sf3,
5668         iorv4sf3, xorv4sf3, addv2df3, subv2df3, mulv2df3, divv2df3,
5669         smaxv2df3, sminv2df3, andv2df3, iorv2df3, xorv2df3, mulv8hi3,
5670         umaxv16qi3, smaxv8hi3, uminv16qi3, sminv8hi3): Likewise.
5671         (sse3_addsubv4sf3): Model correctly.
5672         sse3_haddv4sf3, sse3_hsubv4sf3, sse3_addsubv2df3, sse3_haddv2df3,
5673         sse3_hsubv2df3, sse2_ashlti3, sse2_lshrti3): Likewise.
5674         (sse_movhlps): Model with vec_select+vec_concat.
5675         (sse_movlhps, sse_unpckhps, sse_unpcklps, sse3_movshdup,
5676         sse3_movsldup, sse_shufps, sse_shufps_1, sse2_unpckhpd, sse3_movddup,
5677         sse2_unpcklpd, sse2_shufpd, sse2_shufpd_1, sse2_punpckhbw,
5678         sse2_punpcklbw, sse2_punpckhwd, sse2_punpcklwd, sse2_punpckhdq,
5679         sse2_punpckldq, sse2_punpckhqdq, sse2_punpcklqdq, sse2_pshufd,
5680         sse2_pshufd_1, sse2_pshuflw, sse2_pshuflw_1, sse2_pshufhw,
5681         sse2_pshufhw_1): Likewise.
5682         (neg<SSEMODEI>2, one_cmpl<SSEMODEI>2): New.
5683         (add<SSEMODEI>3, sse2_ssadd<SSEMODE12>3, sse2_usadd<SSEMODE12>3,
5684         sub<SSEMODEI>3, sse2_sssub<SSEMODE12>3, sse2_ussub<SSEMODE12>3,
5685         ashr<SSEMODE24>3, lshr<SSEMODE248>3, sse2_eq<SSEMODE124>3,
5686         sse2_gt<SSEMODDE124>3, and<SSEMODEI>3, sse_nand<SSEMODEI>3,
5687         ior<SSEMODEI>3, xor<SSEMODEI>3): Macroize from existing patterns.
5688         (addv4sf3, sse_vmaddv4sf3, mulv4sf3, sse_vmmulv4sf3, smaxv4sf3,
5689         sse_vmsmaxv4sf3, sminv4sf3, sse_vmsminv4sf3, addv2df3, sse2_vmaddv2df3,
5690         mulv2df3, sse2_vmmulv2df3, smaxv2df3, sse2_vmsmaxv2df3, sminv2df3,
5691         sse2_vmsminv2df3, umaxv16qi3, smaxv8hi3, uminv16qi3
5692         sminv8hi3): Mark commutative
5693         operands.  Use ix86_binary_operator_ok.
5694         (sse_unpckhps, sse_unpcklps, sse2_packsswb, sse2_packssdw,
5695         sse2_packuswb, sse2_punpckhbw, sse2_punpcklbw, sse2_punpckhwd,
5696         sse2_punpcklwd, sse2_punpckhdq, sse2_punpckldq, sse2_punpckhqdq,
5697         sse2_punpcklqdq): Allow operand2 in memory.
5698         (sse_movhlps, sse_movlhps, sse2_unpckhpd, sse2_unpcklpd
5699         sse2_movsd): Add memory alternatives.
5700         (sse_storelps): Turn expander into an insn; split after reload.
5701         (sse_storess, sse2_loadhpd, sse2_loadlpd): Add non-xmm inputs.
5702         (sse2_storehpd, sse2_storelpd): Add non-xmm outputs.
5703
5704 2005-01-08  Eric Botcazou  <ebotcazou@libertysurf.fr>
5705
5706         * configure.ac (DWARF-2 debug_line): Use objdump.
5707         * configure: Regenerate.
5708
5709 2005-01-08  Jeff Law  <law@redhat.com>
5710             Diego Novillo  <dnovillo@redhat.com>
5711
5712         PR tree-optimization/18241
5713         * tree-nrv.c (tree_nrv): Ignore volatile return values.
5714         * tree-ssa-dse.c (dse_optimize_stmt): Do not optimize
5715         statements with volatile operands.
5716         * tree-ssa-operands.c (add_stmt_operand): Do add volatile
5717         operands after marking a statement with has_volatile_ops.
5718
5719 2005-01-08  Roger Sayle  <roger@eyesopen.com>
5720
5721         * tree.c (int_fits_type_p): Always honor integer constant
5722         TYPE_MIN_VALUE and TYPE_MAX_VALUE if they exist.
5723
5724 2005-01-08  Roger Sayle  <roger@eyesopen.com>
5725
5726         * ifcvt.c (find_if_case_1): Reinstate 2005-01-04 change, now that
5727         the latent bug in rtl_delete_block has been resolved.
5728
5729 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
5730
5731         * config/mips/t-iris6 (MULTILIB_DIRNAMES): Use -mabi argument values.
5732         (MULTILIB_OSDIRNAMES): Use the standard lib, lib32 and lib64.
5733
5734 2005-01-08  Richard Sandiford  <rsandifo@redhat.com>
5735
5736         * config/mips/t-slibgcc-irix (SHLIB_LINK): Install a copy of the
5737         library as @multilib_dir@/$(SHLIB_SONAME).
5738
5739 2005-01-07  Eric Botcazou  <ebotcazou@libertysurf.fr>
5740
5741         * configure.ac (HAVE_AS_OFFSETABLE_LO10): Fix typo.
5742         * configure: Regenerate.
5743
5744 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
5745
5746         * c-common.c (handle_mode_attribute): For ENUMERAL_TYPE, also copy
5747         TYPE_MODE.
5748
5749 2005-01-07  David Edelsohn  <edelsohn@gnu.org>
5750
5751         PR target/13674
5752         * config/rs6000/rs6000.c (rs6000_legitimize_reload_address):
5753         Convert non-word aligned offset address using ld/std into
5754         indirect address.
5755
5756 2005-01-07  Richard Henderson  <rth@redhat.com>
5757
5758         * config/i386/i386.md (sse_loadhps splitter): Fix operand number typo.
5759
5760 2005-01-07  Richard SAndiford  <rsandifo@redhat.com>
5761
5762         * tree.h (IS_EXPR_CODE_CLASS): Use a straight-forward range check.
5763
5764 2005-01-07  Jakub Jelinek  <jakub@redhat.com>
5765
5766         PR tree-optimization/19283
5767         * fold-const.c (fold_widened_comparison): Return NULL if shorter_type
5768         is not shorter than the original type.
5769
5770         PR rtl-optimization/19012
5771         * config/i386/i386.md (addqi_1_slp): Set memory attribute.
5772
5773         PR rtl-optimization/18861
5774         * cfgbuild.c (BLOCK_USED_BY_TABLEJUMP): Define.
5775         (FULL_STATE): Define.
5776         (mark_tablejump_edge): New function.
5777         (purge_dead_tablejump_edges): New function.
5778         (find_bb_boundaries): Use it.
5779
5780         PR tree-optimization/18828
5781         * builtins.c (expand_builtin_next_arg): Remove argument and all
5782         the argument checking.
5783         (expand_builtin): Adjust caller.
5784         (expand_builtin_va_start): Likewise.  Remove error for too many
5785         arguments.
5786         (fold_builtin_next_arg): Issue error for too many arguments.
5787         After checking arguments, replace them with magic arguments that
5788         prevent further checking of the args.
5789
5790 2005-01-06  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
5791
5792         * pa64-hpux.h (STARTFILE_SPEC): Fix typo in spec.
5793
5794 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5795
5796         PR target/6077
5797         * gcc.c (input_suffix_matches): Tweak the semantics of %{.s:...}
5798         and %{.S:...} (and their negative variants) to test whether the
5799         input file is assembler or pre-processed-assembler independent of
5800         the actual filename extension.
5801
5802 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5803
5804         * simplify-rtx.c (simplify_subreg): Simplify truncations of shifts
5805         of sign or zero extended values.
5806
5807 2005-01-06  Geoffrey Keating  <geoffk@apple.com>
5808
5809         * c-cppbuiltin.c (builtin_define_float_constants): Set __*_EPSILON__
5810         for IBM long double format correctly.
5811
5812 2005-01-06  Daniel Berlin <dberlin@dberlin.org>
5813
5814         Fix PR tree-optimization/18792
5815
5816         * tree-data-ref.c (build_classic_dist_vector): Change first_loop
5817         to first_loop_depth, and use loop depth instead of loop number.
5818         (build_classic_dir_vector): Ditto.
5819         (compute_data_dependences_for_loop): Use depth, not loop number.
5820         * tree-loop-linear.c (try_interchange_loops): Use loop depth, not loop
5821         number. Pass in loops, instead of loop numbers.
5822         (gather_interchange_stats): Ditto.
5823         (linear_transform_loops): Ditto.
5824
5825 2005-01-06  Richard Sandiford  <rsandifo@redhat.com>
5826
5827         PR rtl-opt/13299
5828         * loop.c (get_monotonic_increment, biased_biv_fits_mode_p,
5829         biv_fits_mode_p, extension_within_bounds_p): New functions.
5830         (check_ext_dependent_givs): Use them.
5831
5832 2005-01-06  Roger Sayle  <roger@eyesopen.com>
5833
5834         * cfgrtl.c (rtl_delete_block): A basic block may be followed by
5835         more than one barrier, in which case we should delete them all.
5836
5837 2005-01-06  Tobias Schlueter  <tobias.schlueter@physik.uni-muenchen.de>
5838
5839         * gcc.c (process_command): Change year in 'gcc --version' to 2005.
5840
5841 2005-01-05  Daniel Berlin  <dberlin@dberlin.org>
5842
5843         Fix PR middle-end/19286
5844         Fix PR debug/19267
5845         * dwarf2out.c (gen_subprogram_die): If we've already tried to
5846         output this subprogram, simply ignore this attempt to do it again.
5847         (add_abstract_origin_attribute): Don't abort trying to add the abstract
5848         origin attribute if it's not possible.
5849         (gen_block_die): Don't ignore subblocks of "unused" blocks.
5850         (decls_for_scope): Ditto.
5851         * gimple-low.c (mark_blocks_with_used_subblocks): Remove.
5852         (mark_used_blocks): Don't call mark_blocks_with_used_subblocks.
5853
5854 2005-01-05  Richard Henderson  <rth@redhat.com>
5855
5856         PR target/11327
5857         * config/i386/i386.c (BUILTIN_DESC_SWAP_OPERANDS): New.
5858         (bdesc_2arg): Use it.
5859         (ix86_expand_binop_builtin): Force operands into registers
5860         when optimizing.
5861         (ix86_expand_unop_builtin, ix86_expand_unop1_builtin,
5862         ix86_expand_sse_compare, ix86_expand_sse_comi,
5863         ix86_expand_builtin): Likewise.
5864
5865 2005-01-05  Richard Henderson  <rth@redhat.com>
5866
5867         * config/ia64/ia64.c (rtx_needs_barrier): Handle CONST_VECTOR
5868         and VEC_SELECT.
5869         * config/ia64/vect.md (mulv8qi3): Re-implement with mix_[rl].
5870         (mulv4hi3): Set itanium_class mmmul.
5871         (fpack_sfxf, fpack_xfsf, fpack_xfxf): Remove.
5872         (fpack): Rename from fpack_sfsf.
5873
5874 2005-01-05  Richard Henderson  <rth@redhat.com>
5875
5876         PR rtl-opt/10692
5877         * reload1.c (do_input_reload): Restrict the optimization deleteing
5878         a previous output reload to RELOAD_FOR_INPUT.
5879
5880 2005-01-05  Steven Bosscher  <stevenb@suse.de>
5881
5882         * combine.c (expand_compound_operation)  <ZERO_EXTRACT>: Add
5883         comment that we fall through after case.
5884         (mark_used_regs_combine): Don't expect a SIGN_EXTRACT in a SET_DEST.
5885         (distribute_links): Likewise.
5886         * cse.c (cse_insn): Likewise.
5887         * cselib.c (cselib_invalidate_mem): Likewise.
5888         * df.c: Update comments at the top of the file.
5889         (read_modify_subreg_p): Update comments here too.
5890         (df_def_record_1): Don't expect a SIGN_EXTRACT in a SET_DEST.
5891         * flow.c (mark_set_1): Likewise.
5892         (mark_used_regs): Likewise.
5893         * gcse.c (mems_conflict_for_gcse_p): Likewise.
5894         (canon_list_insert): Likewise.
5895         (mark_set): Likewise.
5896         (try_replace_reg): Likewise.
5897         (store_killed_in_insn): Likewise.
5898         * loop.c (count_one_set): Likewise.
5899         (basic_induction_var): Likewise.
5900         * postreload-gcse.c (find_mem_conflicts): Likewise.
5901         * postreload.c (reload_combine_note_store): Likewise.
5902         (move2add_note_store): Likewise.
5903         * reload.c (find_equiv_reg): Likewise.
5904         (mark_referenced_resources): Likewise.
5905         * rtlanal.c (set_noop_p): Likewise.
5906         (note_stores): Likewise.
5907         (note_uses): Likewise.
5908         * sched-deps.c (sched_analyze_1): Likewise.
5909         * sched-rgn.c (check_live_1): Likewise.
5910         (update_live_1): Likewise.
5911         * config/i860/i860.c: Likewise.
5912
5913         * rtl.dec (SIGN_EXTRACT): Document that this cannot appear as
5914         an lvalue.
5915         (ZERO_EXTRACT): Mention that this one can be an lvalue.
5916
5917         * doc/rtl.texi: Update documentation for bit-fields and SET.
5918
5919 2005-01-05  Roger Sayle  <roger@eyesopen.com>
5920
5921         * ifcvt.c (find_if_case_1): Revert 2005-01-04 change.
5922
5923 2005-01-05  Jan Hubicka  <jh@suse.cz>
5924             Richard Henderson  <rth@redhat.com>
5925
5926         PR target/18910
5927         * config/i386/i386.c (ix86_expand_move): Handle tls symbols
5928         with an offset.
5929
5930 2005-01-05  Richard Henderson  <rth@redhat.com>
5931
5932         PR target/12902
5933         * config/i386/i386.md (sse_movhps, sse_movlps): Remove.
5934         (sse_shufps): Change operand 3 to const_int_operand.
5935         (sse2_storelps): Fix typo in template.
5936         (sse_storehps, sse_loadhps, sse_storelps, sse_loadlps): New.
5937         * config/i386/i386.c (ix86_expand_vector_move_misalign): Use them.
5938         (ix86_expand_builtin): Likewise.
5939
5940 2005-01-05  Julian Brown  <julian@codesourcery.com>
5941
5942         * config/arm/arm.c (arm_return_in_memory): Treat complex types
5943         as aggregates for AAPCS ABIs.
5944
5945 2005-01-05  Stan Shebs  <shebs@apple.com>
5946
5947         * unwind-dw2-fde-darwin.c (examine_objects): Use 64-bit
5948         Mach-O getters if ppc64.
5949         * config/darwin.c (darwin_asm_output_dwarf_delta): Obey
5950         size argument.
5951         * config/darwin.h (ASM_PREFERRED_EH_DATA_FORMAT): Use
5952         signed four-byte field for global code case.
5953         (STARTFILE_SPEC): Avoid crt2.o for 64-bit compilation.
5954
5955 2005-01-05  Roger Sayle  <roger@eyesopen.com>
5956
5957         PR middle-end/19100
5958         * c-common.c: Include real.h.
5959         (c_common_truthvalue_conversion): Avoid destructively modifying expr.
5960         Correctly handle TREE_CONSTANT_OVERFLOW for INTEGER_CST.
5961         Correctly handle TREE_CONSTANT_OVERFLOW and NaNs for REAL_CST.
5962         * Makefile.in (c-common.o): Update dependencies.
5963
5964 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5965
5966         * c-parse.in (asm_string): Add trailing semicolon.
5967
5968 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5969
5970         * c-parse.in (asm_string): New.  Don't allow wide strings in
5971         'asm'.
5972         (simple_asm_expr, asm_argument, asm_operand, asm_clobbers): Use
5973         asm_string instead of STRING.
5974
5975 2005-01-05  Joseph S. Myers  <joseph@codesourcery.com>
5976
5977         * c-typeck.c (constructor_no_implicit): Remove.
5978         (set_designator, process_init_element): Don't check
5979         constructor_no_implicit.
5980
5981 2005-01-05  J"orn Rennecke <joern.rennecke@st.com>
5982             Kaz Kojima  <kkojima@gcc.gnu.org>
5983
5984         PR target/16482
5985         * lcm.c (create_pre_exit): New.
5986         (optimize_mode_switching): In MODE_ENTRY / MODE_EXIT case, set
5987         ENTRY_EXIT_EXTRA to 3.  Use create_pre_exit.
5988
5989 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
5990
5991         * arm.h (TARGET_OPTIONS): Correctly record -mhard-float and
5992         -msoft-float in target_float_switch.
5993         * arm.c (arm_override_options): Fix processing of target_float_switch.
5994
5995 2004-01-05  Richard Earnshaw  <rearnsha@arm.com>
5996
5997         * arm/vfp.md (arm_movsi_vfp): Hide VFP register classes from register
5998         preferencing.
5999
6000 2004-01-05  Uros Bizjak  <uros@kss-loka.si>
6001
6002         * doc/invoke.texi (Intel 386 and AMD x86-64 Options):
6003         Replace i387 with 'i386 compiler' in -mfpmath=sse option.
6004
6005 2005-01-04  Roger Sayle  <roger@eyesopen.com>
6006
6007         * ifcvt.c (find_if_case_1): Avoid creating an empty forwarder block,
6008         if deleting the then-block allows the test-block to fallthru to the
6009         else-block.
6010
6011 2005-01-04  Andrew Pinski  <pinskia@physics.uc.edu>
6012
6013         PR c/19152
6014         * c-decl.c (diagnose_mismatched_decls): Accept "extern inline" declared
6015         after the full declaration if the are in two different TUs.
6016
6017 2005-01-04  Richard Henderson  <rth@redhat.com>
6018
6019         PR tree-opt/19158
6020         * tree-sra.c (generate_one_element_init): Just
6021         call gimplify_and_add.
6022         (generate_element_init): Record the
6023         new referenced variables and mark them for renaming
6024         and split out to ...
6025         (generate_element_init_1): This.
6026         (scalarize_init): Don't call push_gimplify_context/
6027         pop_gimplify_context.
6028
6029 2005-01-04  Geoffrey Keating  <geoffk@apple.com>
6030
6031         * toplev.c (get_src_pwd): Handle failure of getpwd().
6032
6033 2005-01-04  Roger Sayle  <roger@eyesopen.com>
6034
6035         * fold-const.c (fold_single_bit_test): Delete unreachable handling
6036         of TRUTH_NOT_EXPR.
6037         (fold): Don't call fold_single_bit_test with a TRUTH_NOT_EXPR, as
6038         all the cases handled by it are inverted by invert_truthvalue.
6039
6040 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6041
6042         * config/sparc/sparc.md (save_register_windowdi): Add missing mode.
6043         (save_register_windowsi): Likewise.
6044
6045 2005-01-04  Richard Henderson  <rth@redhat.com>
6046
6047         * tree-mudflap.c (mf_varname_tree): Fix thinko setting declname.
6048
6049 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
6050
6051         PR middle-end/17767
6052         * cse.c (fold_rtx) [RTX_COMPARE, RTX_COMM_COMPARE]: Don't attempt
6053         any simplifications of vector mode comparison operators.
6054         * simplify-rtx.c (simplify_relational_operation): Fix variable name.
6055
6056 2005-01-04  Paolo Bonzini  <bonzini@gnu.org>
6057             Devang Patel  <dpatel@apple.com>
6058
6059         PR tree-optimization/18308
6060         * tree-if-conv.c (add_to_dst_predicate_list): Gimplify
6061         the operands before creating a new expression.
6062         * dojump.c (do_jump): Make drop_through_label available
6063         for all cases.  Add expansion of COND_EXPR.
6064
6065 2005-01-04  Ira Rosen  <irar@il.ibm.com>
6066
6067         * tree-vectorizer.c (vect_analyze_offset_expr): Test for
6068         INTEGER_CST instead of TREE_CONSTANT.
6069         (vect_gen_niters_for_prolog_loop): Test for INTEGER_CST
6070         instead of TREE_CONSTANT.
6071         (vect_analyze_pointer_ref_access): Test for INTEGER_CST
6072         instead of TREE_CONSTANT.
6073
6074 2005-01-04  Eric Botcazou  <ebotcazou@libertysurf.fr>
6075
6076         * tree-eh.c (replace_goto_queue): Return early if the queue is empty.
6077
6078 2005-01-04  Uros Bizjak  <uros@kss-loka.si>
6079
6080         PR target/19240
6081         * config/i386/i386.md (*fop_df_1_i387): Disable for TARGET_SSE_MATH.
6082         (*fop_df_1_i387): Disable for (TARGET_SSE2 && TARGET_SSE_MATH).
6083
6084 2005-01-03  Richard Henderson  <rth@redhat.com>
6085
6086         * fold-const.c (force_fit_type): Cope with types larger than 2 HWI.
6087         (fold_convert_const_int_from_int, fold_convert_const_int_from_real,
6088         fold_convert_const_real_from_real): Split out from ...
6089         (fold_convert_const): ... here.
6090
6091 2005-01-03  Richard Henderson  <rth@redhat.com>
6092
6093         PR target/19235
6094         * config/i386/i386.md (movdi_2): Separate SSE1 and SSE2 alternatives.
6095         (mov<MMXMODEI>_internal): Likewise.
6096         (movdf_nointeger): Prefer Y while not preferring, but allowing, x.
6097         Add V2SF case; use it for SSE1; don't use TI.
6098         (movdf_integer): Likewise.
6099         (mov<SSEMODEI>_internal, movti_internal): Force V4SF for SSE1.
6100
6101 2005-01-03  Ira Rosen  <irar@il.ibm.com>
6102
6103         * tree-vectorizer.c (vect_strip_conversions): New function.
6104         (vect_analyze_offset_expr): Call vect_strip_conversions. Add
6105         check for binary class.
6106
6107 2005-01-03  Daniel Berlin  <dberlin@dberlin.org>
6108
6109         Fix PR debug/17924
6110         Fix PR debug/19191
6111         * dwarf2out.c (block_ultimate_origin): Follow decl origin if origin
6112         is a decl.
6113         * gimple-low.c (mark_blocks_with_used_vars): New function.
6114         (mark_blocks_with_used_subblocks): Ditto.
6115         (mark_used_blocks): Ditto.
6116         (pass_mark_used_blocks): New pass.
6117         * tree-inline.c: Include debug.h.
6118         (expand_call_inline): Call outlining_inline_function here.
6119         * tree-optimize.c (init_tree_optimization_passes): Add
6120         pass_mark_used_blocks.
6121         * tree-pass.h (pass_mark_used_blocks): New.
6122         * Makefile.in (tree-inline.o): Add debug.h dependency.
6123
6124 2005-01-03  Geoffrey Keating  <geoffk@apple.com>
6125
6126         * config/darwin.c (darwin_handle_weak_import_attribute): Permit
6127         VAR_DECLs to have weak_import attribute.
6128
6129         * config/rs6000/darwin-fallback.c: Use 'ucontext_t' rather than
6130         'struct ucontext'.
6131
6132 2004-01-03  Steven Bosscher  <stevenb@suse.de>
6133
6134         * passes.c (rest_of_compilation): Don't run regmove if only
6135         flag_expensive_optimizations, require flag_regmove instead.
6136
6137 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6138
6139         * config/sparc/litecoff.h (TARGET_OS_CPP_BUILTINS): Do not
6140         register "sparc".
6141         * config/sparc/sysv4-only.h (TARGET_OS_CPP_BUILTINS): Likewise.
6142         * config/sparc/rtemself.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6143         * config/sparc/sol2-64.h (TARGET_SUB_OS_CPP_BUILTINS): Delete.
6144         * config/sparc/sp64-elf.h (TARGET_SUB_OS_CPP_BUILTINS): Likewise.
6145
6146 2005-01-03  Richard Henderson  <rth@redhat.com>
6147
6148         * config/ia64/ia64.c (TARGET_VECTOR_MODE_SUPPORTED_P): New.
6149         (ia64_const_ok_for_letter_p): New.
6150         (ia64_const_double_ok_for_letter_p): New.
6151         (ia64_extra_constraint): New.
6152         (ia64_expand_vecint_compare): New.
6153         (ia64_expand_vcondu_v2si): New.
6154         (ia64_expand_vecint_cmov): New.
6155         (ia64_expand_vecint_minmax): New.
6156         (ia64_print_operand): Add 'v'.
6157         (ia64_preferred_reload_class): New.
6158         (ia64_vector_mode_supported_p): New.
6159         * config/ia64/ia64.h (UNITS_PER_SIMD_WORD): New.
6160         (PREFERRED_RELOAD_CLASS): Move to function.
6161         (CONST_OK_FOR_LETTER_P): Move to function.
6162         (CONST_DOUBLE_OK_FOR_LETTER_P): Move to function.
6163         (CONSTRAINT_OK_FOR_Q, CONSTRAINT_OK_FOR_R): Remove.
6164         (CONSTRAINT_OK_FOR_S, CONSTRAINT_OK_FOR_T): Remove.
6165         (EXTRA_CONSTRAINT): Move to function.
6166         * config/ia64/ia64.md: Include vect.md.
6167         (itanium_class): Add mmalua.
6168         (type): Handle it.
6169         * config/ia64/itanium1.md (1_mmalua): New.  Add it to bypasses.
6170         (1b_mmalua): New.
6171         * config/ia64/itanium2.md (2_mmalua, 2b_mmalua): Similarly.
6172         * config/ia64/predicates.md (gr_reg_or_0_operand): Accept any
6173         CONST0_RTX.
6174         (const_int_2bit_operand): New.
6175         (fr_reg_or_0_operand): New.
6176         * config/ia64/ia64-modes.def: Add vector modes.
6177         * config/ia64/ia64-protos.h: Update.
6178         * config/ia64/vect.md: New file.
6179
6180 2005-01-03  Richard Henderson  <rth@redhat.com>
6181
6182         * simplify-rtx.c (simplify_binary_operation): Handle VEC_CONCAT.
6183
6184 2005-01-03  Uros Bizjak  <uros@kss-loka.si>
6185
6186         PR target/19236
6187         * config/i386/i386.c (log1psf2): Change mode of operands[0,1]
6188         to SFmode.
6189         (log1pdf2): Change mode of operands[0,1] to DFmode.
6190
6191 2005-01-03  Eric Botcazou  <ebotcazou@libertysurf.fr>
6192
6193         * config/sparc/sparc.h (SPARC_RELAXED_ORDERING): Define to false.
6194         * config/sparc/linux.h (SPARC_RELAXED_ORDERING): Define to true.
6195         * config/sparc/linux64.h (SPARC_RELAXED_ORDERING): Likewise.
6196         * config/sparc/sparc.c (TARGET_RELAXED_ORDERING): Define to
6197         SPARC_RELAXED_ORDERING.
6198
6199 2005-01-03  Richard Henderson  <rth@redhat.com>
6200             Uros Bizjak  <uros@kss-loka.si>
6201
6202         PR target/14631
6203         * config/i386/i386.c (ix86_expand_builtin): [IX86_BUILTIN_PINSRW,
6204         IX86_BUILTIN_PINSRW128]: Fix wrong selector range in error message.
6205         * config/i386/i386.md (mmx_pinsrw, sse2_pinsrw): Fix selector
6206         handling.
6207         (*mmx_pinsrw, *sse2_pinsrw): New patterns.
6208         * config/i386/i386/predicates.md (const_pow2_1_to_8_operand,
6209         const_pow2_1_to_128_operand): New predicates.
6210
6211 2005-01-02  Greg McGary  <greg@mcgary.org>
6212
6213         * tree-mudflap.c (mf_varname_tree): decl_printable_name handles
6214         anonymous decls.
6215         (mf_xform_derefs_1) [RESULT_DECL, STRING_CST]: Handle as innermost
6216         object.  [ptr_type]: Remove unused variable.
6217         Remember nearest addressable array-element or record-component
6218         when checking bitfield components.  Tolerate empty BIND_EXPR.
6219
6220 2005-01-01  Richard Henderson  <rth@redhat.com>
6221
6222         * tree-vectorizer.c (vect_analyze_offset_expr): Strip conversions
6223         that don't narrow the value.  Fail for other conversions.
6224
6225 2005-01-01  Richard Henderson  <rth@redhat.com>
6226
6227         PR c/19031
6228         * c-decl.c (pop_file_scope): Call maybe_apply_pending_pragma_weaks.
6229         * c-lang.c (finish_file): Don't do it here.
6230         * objc/objc-act.c (objc_finish_file): Likewise.
6231
6232         * cgraph.c (decl_assembler_name_equal): New.
6233         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): New.
6234         (cgraph_varpool_node): Actually link up cgraph_varpool_nodes.
6235         * cgraph.h (struct cgraph_varpool_node): Add next.
6236         (cgraph_node_for_asm, cgraph_varpool_node_for_asm): Declare.
6237         * varasm.c (assemble_alias): Mark the target as needed.
6238
6239 2005-01-01  Andrew Pinski  <pinskia@physics.uc.edu>
6240
6241         PR middle-end/19221
6242         * function.c (get_arg_pointer_save_area): Use entry_of_function
6243         instead of get_insns.
6244
6245 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6246             Andrew Pinski  <pinskia@physics.uc.edu>
6247             James E. Wilson  <wilson@specifixinc.com>
6248
6249         PR rtl-optimization/12092
6250         * loop.c (emit_prefetch_instructions): Do nothing if PREFETCH_BLOCK
6251         is zero.
6252
6253 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6254             Olivier Hainque  <hainque@act-europe.fr>
6255
6256         * tree.c (int_fits_type_p): A narrower type always fits in a
6257         wider one, except for negative values into unsigned types.
6258
6259 2005-01-01  Roger Sayle  <roger@eyesopen.com>
6260
6261         * tree.c (int_fits_type_p): Compare the result of force_fit_type
6262         with the original constant rather than require TREE_OVERFLOW.
6263
6264 2005-01-01  Steven Bosscher  <stevenb@suse.de>
6265
6266         PR middle-end/17544
6267         * c-decl.c (finish_function): If compiling C99, annotate the
6268         compiler generated return with the current file name and line 0.
6269         * tree-cfg.c (remove_useless_stmts_warn_notreached): Only warn if
6270         the source line is greater than 0.
6271         (remove_bb): Likewise.
6272
6273 See ChangeLog.12 for earlier changes.