OSDN Git Service

8ba855b3d436cddeeffe3a6c47a7c939574a3ea3
[pf3gnuchains/gcc-fork.git] / gcc / ChangeLog
1 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
2
3         * tree-ssa-loop-ivopts.c (ivopts_data, decl_rtl_to_reset,
4         n_iv_uses, iv_use, n_iv_cands, iv_cand,
5         tree_ssa_iv_optimize_init, record_use, add_candidate_1,
6         prepare_decl_rtl, free_loop_data,
7         tree_ssa_iv_optimize_finalize): Use the VEC API instead of
8         VARRAY.
9
10         * tree.h (tree_phi_node): Add a comment about the order of PHI
11         arguments.
12
13 2005-04-26  Paul Brook  <paul@codesourcery.com>
14
15         * config/arm/arm.md (thumb_mulsi3): Use two-operand assembly form.
16
17 2005-04-26  Nathan Sidwell  <nathan@codesourcery.com>
18
19         * config/mips.mips.c (mips_legitimize_tls_address): Use
20         gcc_unreachable.
21
22         * config/mmix/mmix.c (mmix_assemble_integer): Use gcc_assert.
23         * config/mmix/crti.asm (_init): Reword comment to avoid 'abort'.
24         * config/mmix/mmix.md (nonlocal_goto_receiver): Likewise.
25
26         * config/sparc/sparc.h (enum reg_class): Reword comment to avoid
27         'abort'.
28
29 2005-04-26  Jeff Law  <law@redhat.com>
30
31         * tree-flow-inline.h (op_iter_next_must_and_may_def): New.
32         (op_iter_init_must_and_may_def): Likewise.
33         (unmodifiable_var_p): Move to a later point in the file.
34         * tree-ssa-operands.h (FOR_EACH_SSA_MUST_AND_MAY_DEF_OPERAND): New.
35         * tree-ssa-dse.c (need_imm_uses_for): Remove, no longer needed.
36         (dse_record_phis): Directly check for virtual operands rather than
37         using need_imm_uses_for.
38         (dse_optimize_stmt): Handle V_MUST_DEF operands.  Handle case where
39         store has multiple V_{MAY,MUST}_DEF operands.
40
41 2005-04-26  Andrew MacLeod  <amacleod@redhat.com>
42
43         * tree-cfg.c (bsi_replace): Delink immediate uses for the original
44         stmt.
45
46 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
47
48         * tree-cfg.c (lv_adjust_loop_header_phi): Speed up moving a
49         call to find_edge outside a loop to go through a PHI chain.
50
51 2004-04-26  Richard Guenther  <rguenth@gcc.gnu.org>
52
53         PR tree-optimization/17598
54         * fold-const.c (fold_binary): Fold comparisons of addresses
55         of COMPONENT_REFs which reference the same field to
56         comparisons of the addresses of the base objects.
57
58 2005-04-26  Julian Brown  <julian@codesourcery.com>
59
60         * config/arm/arm.c (arm_return_in_msb): New function.
61         (arm_must_pass_in_stack): New function.
62         (TARGET_RETURN_IN_MSB): Define target hook.
63         (TARGET_MUST_PASS_IN_STACK): Define target hook.
64         (arm_function_value): Pad small aggregate return.
65         (arm_pad_arg_upward): New function.
66         (arm_pad_reg_upward): New function.
67         * config/arm/arm.h (PROMOTE_FUNCTION_MODE): Include complex values.
68         (FUNCTION_ARG_PADDING): Define macro.
69         (BLOCK_REG_PADDING): Define macro.
70         (PAD_VARARGS_DOWN): Correct padding for AAPCS.
71         * config/arm/arm-protos.h (arm_pad_arg_upward): Declare function.
72         (arm_pad_reg_upward): Declare function.
73
74 2005-04-26  Kazu Hirata  <kazu@cs.umass.edu>
75
76         * basic-block.h (ei_cond): New.
77         (FOR_EACH_EDGE): Call ei_cond.
78
79         PR tree-optimization/21047
80         * fold-const.c (fold_binary): Abort on ASSERT_EXPR.
81         (fold): Don't handle ASSERT_EXPR.
82
83 2005-04-25  Roger Sayle  <roger@eyesopen.com>
84
85         * sched-deps.c (sched_analyze_1): On STACK_REGS targets, x87, treat
86         all writes to any stack register as a read/write dependency on
87         FIRST_STACK_REG.
88         (sched_analyze_2): Likewise, for reads from any stack register.
89
90 2005-04-25  Richard Henderson  <rth@redhat.com>
91
92         * final.c (output_addr_const): Revert 2005-04-09 change.
93
94 2005-04-25  Mike Stump  <mrs@apple.com>
95
96         * config/darwin.c (darwin_encode_section_info): Always set
97         MACHO_SYMBOL_STATIC for all ! TREE_PUBLIC symbols.
98
99 2005-04-25  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
100
101         * collect2.c, gcc.c, gcov-dump.c, gcov.c, gen-protos.c,
102         gensupport.c, protoize.c, toplev.c: Replace calls to
103         `unlock_stream' with `unlock_std_streams'.
104
105 2005-04-25  Devang Patel <dpatel@apple.com>
106
107         * dbxout.c (dbxout_type): Emit attribute vector.
108         
109 2005-04-05  Paul Brook  <julian@codesourcery.com>
110
111         * target-def.h (TARGET_CXX_USE_AEABI_ATEXIT): Define.
112         * target.h (struct gcc_target): Add cxx.use_aeabi_atexit.
113         * config/arm/arm.c (arm_cxx_atexit_name): New function.
114         (TARGET_CXX_USE_AEABI_ATEXIT): New macro.
115         * cp/decl.c (get_atexit_node): Reorder arguments for __aeabi_atexit.
116         (register_dtor_fn): Likewise.
117         * doc/tm.texi: Document TARGET_CXX_USE_AEABI_ATEXIT.
118
119 2005-04-25  Ian Lance Taylor  <ian@airs.com>
120
121         * c-common.def (EXPR_STMT): Remove, moved to C++ frontend.
122         * c-common.h (EXPR_STMT_EXPR): Don't define.
123         (c_common_stmt_codes): Don't define.
124         * c-dump.c (c_dump_tree): Remove EXPR_STMT case.
125         * c-gimplify.c (gimplify_expr_stmt): Remove.
126         (c_gimplify_expr): Remove EXPR_STMT case.
127         * c-objc-common.c (c_objc_common_init): Remove stmt_codes and call
128         to INIT_STATEMENT_CODES.
129         * c-pretty-print.c (pp_c_statement): Just call dump_generic_node.
130
131 2005-04-25  Jan Hubicka  <jh@suse.cz>
132
133         * tree-cfg.c (tree_duplicate_bb): Duplicate EH region too.
134
135         * except.c: Include diagnostic.h
136         (dump_eh_tree, verify_eh_tree): New functions.
137         * except.h (verify_eh_tree, dump_eh_tree, verify_eh_edges): Declare.
138         * tree-cfg.c (tree_verify_flow_info): verify eh edges.
139         (dump_function_to_file): dump eh tree.
140         * tree-eh.c (mark_eh_edge): New function.
141         (mark_eh_edge_found_error): New static variable.
142         (verify_eh_edges): New function.
143
144 2005-04-25  Nathan Sidwell  <nathan@codesourcery.com>
145
146         * tree-ssa-alias.c (fieldoff_t): Remove.
147         (fieldoff_s): typedef the structure itself.  Create a vector of
148         objects.
149         (push_fields_onto_fieldstack): Return count of fields pushed.
150         Remove peeling of first field.  Adjust.
151         (fieldoff_compare): Adjust.
152         (create_overlap_variables_for): Adjust.
153
154 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
155
156         * doc/invoke.texi (Blackfin Options): Avoid empty @opindex line.
157
158 2005-04-25  Joseph S. Myers  <joseph@codesourcery.com>
159
160         PR bootstrap/21215
161         * doc/install.texi: Document correct assembler and linker to use
162         on i?86-*-solaris2.10.
163
164 2005-04-25  Steven Bosscher  <stevenb@suse.de>
165
166         Fix PR tree-optimization/21173
167
168         * tree-ssa-pre.c (create_expression_by_pieces): Simplify code.
169         Unshare expression we pass to force_gimple_operand.
170
171 2005-04-25  J"orn Rennecke <joern.rennecke@st.com>
172             Stephen Clarke <stevec@superh.com>
173             Roger Sayle <roger@eyesopen.com>
174
175         PR rtl-optimization/20413
176         * cfgrtl.c (redirect_edge_and_branch): Use Pmode instead of
177         VOIDmode for LABEL_REF.
178         * final.c (shorten_branches): Likewise.
179         * jump.c (mark_all_labels, redirect_exp_1): Likewise.
180         * loop.c (reg_dead_after_loop): Likewise.
181         * varasm.c (decode_addr_const): Likewise.
182         * doc/rtl.texi: Document mode requirement for LABEL_REF.
183
184 2005-04-25  Ralf Corsepius  <ralf.corsepius@rtems.org>
185
186         * config.gcc (avr-*-*): Remove redundant "case".
187
188 2005-04-25  Kazu Hirata  <kazu@cs.umass.edu>
189
190         * tree-vect-analyze.c (vect_mark_relevant): Take
191         VEC(tree,heap) instead of varray_type as an argument.
192         (vect_mark_stmts_to_be_vectorized): Change the type of
193         worklist to VEC(tree,heap).  Adjust uses of worklist.
194
195 2005-04-24  Devang Patel  <dpatel@apple.com>
196
197         *  config/rs6000/darwin.h (ASM_OUTPUT_MAX_SKIP_ALIGN): New.
198         
199 2005-04-24  Ian Lance Taylor  <ian@airs.com>
200
201         * c-semantics.c (build_stmt): Remove test of specific tree codes
202         for TREE_SIDE_EFFECTS handling.
203
204 2005-04-24  Per Bothner  <per@bothner.com>
205
206         * c-opts.c (finish_options):  Make the line-number of the <built-in>
207         location 0, as assumed elsewhere, rather than 1.
208
209 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
210
211         * tree-ssa-uncprop.c (equiv_stack): Change the type o
212         VEC(tree,heap).
213         (tree_ssa_uncprop, uncprop_finalize_block,
214         uncprop_initialize_block): Update uses of equiv_stack.
215
216 2005-04-24  Richard Henderson  <rth@redhat.com>
217
218         PR rtl-opt/21163
219         * simplify-rtx.c (simplify_binary_operation) <IOR>: Check
220         for SCALAR_INT_MODE_P instead of not MODE_CC before returning
221         constm1_rtx.
222         <AND, LSHIFTRT, UMIN>: Use CONST0_RTX.
223         <UDIV, UMOD>: Use CONST0_RTX and CONST1_RTX.
224         <DIV, MOD>: Likewise.
225
226 2005-04-24  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
227
228         * collect2.c (main): Unlock the stdio streams.
229         * gcc.c (main): Likewise.
230         * gcov-dump.c (main): Likewise.
231         * gcov.c (main): Likewise.
232         * gen-protos.c (main): Likewise.
233         * gensupport.c (init_md_reader_args_cb): Likewise.
234         * protoize.c (main): Likewise.
235         * toplev.c (general_init): Likewise.
236
237 2005-04-24  Jakub Jelinek  <jakub@redhat.com>
238
239         PR middle-end/20991
240         * cgraph.h (cgraph_local_info): Add vtable_method field.
241         * varasm.c (mark_decl_referenced): If cgraph_global_info_ready
242         and node is vtable_method, finalized and not reachable, don't do
243         anything.
244
245 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
246
247         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Use
248         COMPARISON_CLASS_P.
249         * tree-ssa-pre.c (create_value_expr_from): Use
250         CONSTANT_CLASS_P and REFERENCE_CLASS_P.
251         * tree-ssa-propagate.c (stmt_makes_single_load,
252         stmt_makes_single_store): Use REFERENCE_CLASS_P.
253         * tree-vect-transform.c (vect_is_simple_cond): Use
254         COMPARISON_CLASS_P.
255         * tree-vrp.c (extract_range_from_assert,
256         build_assert_expr_for, fp_predicate, has_assert_expr): Use
257         COMPARISON_CLASS_P.
258
259         * tree-ssa-live.c (build_tree_conflict_graph): Change the type
260         of tpa_to_clear to VEC(int,heap).  Update uses of
261         tpa_to_clear.  Free tpa_to_clear at the end.
262
263 2005-04-24  Andrew Pinski  <pinskia@physics.uc.edu>
264
265         * tree.h (TREE_THIS_VOLATILE): Document the effect on a
266         function decl.
267
268 2005-04-24  Nathan Sidwell  <nathan@codesourcery.com>
269
270         * config/rs6000/rs6000.c (rs6000_override_options): Use gcc_assert
271         and gcc_unreachable as appropriate.
272         (num_insns_constant, output_vec_const_move,
273         build_mask64_2_operands, rs6000_output_dwarf_dtprel,
274         rs6000_emit_set_const, rs6000_emit_move,
275         spe_build_register_parallel, function_arg,
276         rs6000_move_block_from_reg, altivec_expand_predicate_builtin,
277         spe_expand_predicate_builtin, spe_expand_evsel_builtin,
278         rs6000_expand_builtin, spe_init_builtins, altivec_init_builtins,
279         rs6000_common_init_builtins, expand_block_clear,
280         expand_block_move, validate_condition_mode, ccr_bit, extract_MB,
281         extract_ME, rs6000_get_some_local_dynamic_name,
282         rs6000_output_function_entry, print_operand,
283         print_operand_address, rs6000_generate_compare, rs6000_emit_sCOND,
284         output_cbranch, output_e500_flip_gt_bit,
285         rs6000_emit_vector_compare, rs6000_emit_vector_compare,
286         rs6000_emit_cmove, rs6000_emit_minmax, rs6000_split_multireg_move,
287         compute_save_world_info, rs6000_stack_info,
288         rs6000_emit_load_toc_table, rs6000_frame_related,
289         spe_synthesize_frame_save, rs6000_emit_epilogue,
290         rs6000_output_function_epilogue, rs6000_hash_constant, output_toc,
291         output_function_profiler, rs6000_trampoline_size,
292         rs6000_initialize_trampoline, find_addr_reg,
293         rs6000_machopic_legitimize_pic_address,
294         rs6000_initial_elimination_offset,
295         rs6000_dbx_register_number): Likewise.
296         * config/rs6000/rs6000.md (*fix_truncdfsi2_internal,
297         *movdf_hardfloat32, *movdf_softfloat32, *fix_trunctfsi2_internal,
298         *movti_power, *movti_string, call, call_value, sibcall,
299         sibcall_value): Likewise.
300         * config/rs6000/spe.md (*movdf_e500_double,
301         *movv2si_internal): Likewise.
302         * config/rs6000/rs6000.h (PREFERRED_RELOAD_CLASS): Remove 'abort'
303         from comment.
304
305 2005-04-24  Richard Henderson  <rth@redhat.com>
306
307         PR target/21101
308         * config/i386/i386.h (CANNOT_CHANGE_MODE_CLASS): Move guts to ...
309         * config/i386/i386.c (ix86_cannot_change_mode_class): ... here.
310         Deny modes smaller than 4 bytes.
311         * config/i386/i386-protos.h: Update.
312
313 2005-04-24  Ralf Corsepius  <ralf.corsepius@rtems.org>
314
315         * config.gcc (h8300-*-rtems*): Add h8300-*-rtemscoff*.
316         Switch h8300-*-rtems* to ELF.
317
318 2005-04-24  Kazu Hirata  <kazu@cs.umass.edu>
319
320         * vec.h (VEC_safe_grow): Replace grow with safe_grow.
321
322 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
323
324         * ipa-inline.c, tree-ssa-operands.h: Fix comment typos.
325
326 2005-04-23  Richard Guenther  <rguenth@gcc.gnu.org>
327
328         PR middle-end/21082
329         * fold-const.c: Fold &a[i]-&a[j] to i-j.
330
331 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
332
333         * tree-ssa-loop-niter.c (tree_simplify_using_condition): Expand simple
334         definitions of ssa names in condition.  Split recusive part to ...
335         (tree_simplify_using_condition_1): New function.
336         (expand_simple_operations): New function.
337
338 2005-04-23  Zdenek Dvorak  <dvorakz@suse.cz>
339
340         * tree-ssa-loop-ivopts.c (struct cost_pair): Add value field.
341         (find_interesting_uses_cond): Do not use integer_zerop and
342         integer_nonzerop to check for integer constants.
343         (set_use_iv_cost): Record the value field.
344         (determine_use_iv_cost_generic, determine_use_iv_cost_address,
345         determine_use_iv_cost_outer): Set the value field of the cost pair.
346         (may_eliminate_iv): Do not return the comparison code.
347         (iv_elimination_compare): New function.
348         (determine_use_iv_cost_condition): Set the value field.  Record
349         noneliminable invariants correctly.
350         (rewrite_use_compare, rewrite_use_outer): Use the value field.
351
352 2005-04-23  DJ Delorie  <dj@redhat.com>
353
354         * diagnostic.c (warning): Accept parameter to classify warning option.
355         (warning0): New, for when a pointer to an error() like function is needed.
356         * errors.c (warning): Likewise.
357         * errors.h (warning, warning0): Adjust prototypes.
358         * toplev.h (warning, warning0): Likewise.
359
360         * attribs.c, builtins.c, c-common.c, c-decl.c, c-format.c,
361         c-gimplify.c, c-lex.c, c-objc-common.c, c-opts.c, c-parser.c,
362         c-pragma.c, c-typeck.c, calls.c, cgraph.c, coverage.c, emit-rtl.c,
363         fold-const.c, fortran/trans-decl.c, function.c, gcse.c,
364         genautomata.c, haifa-sched.c, opts.c, passes.c, regclass.c,
365         reload1.c, stmt.c, stor-layout.c, toplev.c, tree-cfg.c,
366         tree-dump.c, tree-inline.c, tree-mudflap.c, tree-optimize.c,
367         tree-ssa.c, tree.c, varasm.c: Adjust warning() callers.
368
369         * config/alpha/alpha.c, config/arc/arc.c, config/arm/arm.c,
370         config/avr/avr.c, config/bfin/bfin.c, config/c4x/c4x-c.c,
371         config/c4x/c4x.c, config/cris/cris.c, config/darwin-c.c,
372         config/darwin.c, config/darwin.h, config/h8300/h8300.c,
373         config/i386/cygming.h, config/i386/djgpp.h, config/i386/i386.c,
374         config/i386/winnt.c, config/ia64/ia64-c.c, config/ia64/ia64.c,
375         config/ip2k/ip2k.c, config/m32r/m32r.c, config/m68hc11/m68hc11.c,
376         config/m68k/m68k.c, config/mcore/mcore.c, config/mips/mips.c,
377         config/mmix/mmix.c, config/ns32k/ns32k.c, config/pa/pa-hpux11.h,
378         config/pa/pa.c, config/rs6000/aix43.h, config/rs6000/aix51.h,
379         config/rs6000/aix52.h, config/rs6000/darwin.h,
380         config/rs6000/rs6000-c.c, config/rs6000/rs6000.c,
381         config/s390/s390.c, config/sh/sh.c, config/sh/sh.h,
382         config/sh/symbian.c, config/sol2-c.c, config/sol2.c,
383         config/stormy16/stormy16.c, config/v850/v850-c.c,
384         config/v850/v850.c, config/xtensa/xtensa.c: Adjust warning()
385         callers.
386         
387 2005-04-23  Richard Henderson  <rth@redhat.com>
388
389         PR rtl-opt/21102
390         * simplify-rtx.c (simplify_binary_operation): Fix mode check before
391         performing some integral scalar simplifications.
392
393 2005-04-23  Richard Henderson  <rth@redhat.com>
394
395         PR target/21099
396         * config/i386/i386.c (ix86_split_to_parts): Use proper mode when
397         simplifying CONST_VECTOR.
398
399 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
400
401         * tree-ssa-live.c (live_worklist): Take a stack allocated on
402         heap as an argument.  Update uses of stack.
403         (calculate_live_on_entry): Allocate stack on heap.
404
405         * tree-ssa-live.c (build_tree_conflict_graph): Allocate
406         partition_link and tpa_nodes on heap.
407
408         * tree-ssa-dce.c (worklist): Change to VEC(tree,heap).
409         (mark_stmt_necessary, propagate_necessity,
410         mark_really_necessary_kill_operand_phis): Update uses of
411         worklist.
412         (tree_dce_init): Allocate worklist using VEC_alloc.
413         (tree_dce_done): Free worklist using VEC_free.
414
415 2005-04-23  Mike Stump  <mrs@apple.com>
416
417         * config/darwin.c (machopic_indirection_name): Don't use
418         quotes needlessly.
419         (darwin_emit_unwind_label): Use user_label_prefix instead of
420         "_".
421
422 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
423
424         * final.c, ipa-inline.c, varasm.c: Fix comment typos.
425
426 2005-04-23  Hans-Peter Nilsson  <hp@axis.com>
427
428         * config.gcc <cris-*>: Specify .opt files.
429         * config/cris/cris.opt, config/cris/elf.opt, config/cris/aout.opt,
430         config/cris/linux.opt: New files.
431         * config/cris/aout.h (CRIS_SUBTARGET_SWITCHES)
432         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
433         (TARGET_ELF): Override to 0.
434         (CRIS_SUBTARGET_HANDLE_OPTION): Override to handle -melinux and
435         -melinux-stacksize=N.
436         * config/cris/cris.c: (cris_handle_option): New function.
437         (TARGET_DEFAULT_TARGET_FLAGS): Override.
438         (TARGET_HANDLE_OPTION): Override to cris_handle_option.
439         (cris_override_options): Use MASK_*, not TARGET_MASK_*.
440         * config/cris/cris.h (TARGET_MASK_SVINTO, TARGET_SVINTO,
441         (TARGET_MASK_CCINIT, TARGET_CCINIT, TARGET_MASK_PDEBUG)
442         (TARGET_PDEBUG, TARGET_MASK_SIDE_EFFECT_PREFIXES)
443         (TARGET_SIDE_EFFECT_PREFIXES, TARGET_MASK_EXPAND_MUL)
444         (TARGET_EXPAND_MUL, TARGET_MASK_STACK_ALIGN, TARGET_STACK_ALIGN)
445         (TARGET_MASK_CONST_ALIGN, TARGET_CONST_ALIGN)
446         (TARGET_MASK_DATA_ALIGN, TARGET_DATA_ALIGN)
447         (TARGET_MASK_PROLOGUE_EPILOGUE, TARGET_PROLOGUE_EPILOGUE)
448         (TARGET_MASK_ETRAX4_ADD, TARGET_ETRAX4_ADD)
449         (TARGET_MASK_ALIGN_BY_32, TARGET_ALIGN_BY_32, TARGET_MASK_ELF)
450         (TARGET_ELF, TARGET_MASK_LINUX, TARGET_LINUX)
451         (TARGET_MASK_AVOID_GOTPLT, TARGET_AVOID_GOTPLT)
452         (TARGET_MASK_MUL_BUG, TARGET_MUL_BUG, TARGET_SWITCHES)
453         (CRIS_SUBTARGET_SWITCHES, TARGET_OPTIONS)
454         (CRIS_SUBTARGET_LONG_OPTIONS): Don't define.
455         (TARGET_LINUX): Define 0.
456         (TARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
457         (CRIS_SUBTARGET_DEFAULT): Define to 0, not TARGET_MASK_ELF.
458         (CRIS_SUBTARGET_DEFAULT): New empty default macro.
459         * config/cris/linux.h (CRIS_SUBTARGET_SWITCHES): Don't define.
460         (TARGET_LINUX): Override to 1.
461         (CRIS_SUBTARGET_DEFAULT): Use MASK_*, not TARGET_MASK_*.
462
463 2005-04-23  Nathan Sidwell  <nathan@codesourcery.com>
464
465         * haifa-sched.c (schedule_block): Fix thinko in previous
466         assertification patch.
467
468 2005-04-23  Richard Sandiford  <rsandifo@redhat.com>
469
470         * config.gcc (hppa[12]*-*-hpux10*): Add pa/pa-hpux.opt to
471         $extra_options.  Also add pa/pa-hpux1010.opt for hpux10.[1-9]*.
472         (hppa*64*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
473         pa/pa-hpux.opt, pa/pa-hpux1010.opt and pa/pa64-hpux.opt to
474         $extra_options.  Also add pa/pa-hpux1111.opt for hpux11.[1-9]*.
475         (hppa[12]*-*-hpux11*): Add pa/pa-hpux1010.h to $tm_file.  Add
476         pa/pa-hpux.opt to $extra_options.  Also add pa/pa-hpux1111.opt
477         for hpux11.[1-9]*.
478         * config/pa/pa.h (architecture_type, rtx_def, pa_arch_string, pa_arch)
479         (pa_fixed_range_string, pa_cpu_string, pa_unix_string, target_flags)
480         (MASK_PA_11, MASK_DISABLE_FPREGS, TARGET_DISABLE_FPREGS)
481         (MASK_NO_SPACE_REGS, TARGET_NO_SPACE_REGS, MASK_JUMP_IN_DELAY)
482         (TARGET_JUMP_IN_DELAY, MASK_DISABLE_INDEXING, TARGET_DISABLE_INDEXING)
483         (MASK_PORTABLE_RUNTIME, TARGET_PORTABLE_RUNTIME, MASK_GAS, TARGET_GAS)
484         (MASK_SOFT_FLOAT, TARGET_SOFT_FLOAT, MASK_LONG_LOAD_STORE)
485         (TARGET_LONG_LOAD_STORE, MASK_FAST_INDIRECT_CALLS)
486         (TARGET_FAST_INDIRECT_CALLS, MASK_BIG_SWITCH, TARGET_BIG_SWITCH)
487         (MASK_PA_20, MASK_SIO, TARGET_SIO, MASK_GNU_LD, TARGET_GNU_LD)
488         (MASK_LONG_CALLS, TARGET_LONG_CALLS, TARGET_PA_11, TARGET_PA_20)
489         (TARGET_SWITCHES, SUBTARGET_SWITCHES, TARGET_OPTIONS)
490         (SUBTARGET_OPTIONS): Delete.
491         (TARGET_PA_10): Redefine in terms of TARGET_PA_11 and TARGET_PA_20.
492         (TARGET_SCHED_DEFAULT): Define to a PROCESSOR_* enum (PROCESSOR_8000)
493         instead of a string.
494         * config/pa/pa.c (pa_arch, pa_arch_string, pa_fixed_range_string)
495         (pa_cpu_string, pa_unix_string): Delete.
496         (pa_cpu): Initialize to TARGET_SCHED_DEFAULT.
497         (flag_pa_unix): Initialize based on TARGET_HPUX_11_11 and
498         TARGET_HPUX_10_10.
499         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
500         (pa_handle_option): New function.
501         (override_options): Remove handling of -march=, -mfixed-range=,
502         -mschedule= and -munix=.
503         * config/pa/pa-hpux.h (SUBTARGET_SWITCHES): Delete.
504         * config/pa/pa-hpux1010.h (SUBTARGET_OPTIONS): Delete.
505         * config/pa/pa-hpux10.h (SUBTARGET_OPTIONS): Delete.
506         * config/pa/pa-hpux1111.h (SUBTARGET_OPTIONS): Delete.
507         * config/pa/pa-hpux11.h (SUBTARGET_OPTIONS): Delete.
508         * config/pa/pa64-hpux.h (SUBTARGET_SWITCHES): Delete.
509         * config/pa/pa64-start.h (TARGET_PA_11, TARGET_PA_20): #undef before
510         redefining.
511         * config/pa/pa.opt: New file.
512         * config/pa/pa-hpux.opt: New file.
513         * config/pa/pa-hpux1010.opt: New file.
514         * config/pa/pa-hpux1111.opt: New file.
515         * config/pa/pa64-hpux.opt: New file.
516
517 2005-04-22  David S. Miller  <davem@davemloft.net>
518
519         * rtl.h (CONST_DOUBLE): Fix comment, a CONST_DOUBLE holds an
520         integer when it's mode is VOIDmode not DImode.
521
522 2005-04-22  Geoffrey Keating  <geoffk@apple.com>
523
524         * config/rs6000/rs6000.md (sync_add<mode>_internal,
525         sync_addshort_internal, sync_sub<mode>_internal, sync_andsi_internal,
526         sync_anddi_internal, sync_boolsi_internal, sync_booldi_internal,
527         sync_boolc<mode>_internal, sync_boolc<mode>_internal2,
528         sync_boolcc<mode>_internal, sync_lock_test_and_set<mode>): Use
529         "bne- $-xxx" rather than local labels.
530         (sync_lock_release<mode>): Add second operand.
531         (lwsync): Use .long rather than a more meaningful opcode.
532         * doc/md.texi (Standard Names): Add description of second
533         parameter to sync_lock_test_and_set.
534
535 2005-04-23  Kazu Hirata  <kazu@cs.umass.edu>
536
537         PR tree-optimization/21088
538         * fold-const.c (fold_unary, fold_binary, fold_ternary):
539         Export.
540         * tree-vrp.c (compare_values): Use fold_binary to compare
541         pointers.  Use boolean_type_node as the type of a comparison
542         expression being folded.
543         * tree.h: Add prototypes for fold_unary, fold_binary,
544         fold_ternary.
545
546         * tree-ssa-dom.c: Fix formatting.
547
548 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
549
550         * Makefile.in (tree-into-ssa.o): Add dependency on PARAMS_H.
551         * lambda-code.c (perfect_nestify): Mark virtual operands in
552         the moved statement for renaming.
553         * params.def (PARAM_MIN_VIRTUAL_MAPPINGS): Define.
554         (PARAM_VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
555         * params.h (MIN_VIRTUAL_MAPPINGS): Define.
556         (VIRTUAL_MAPPINGS_TO_SYMS_RATIO): Define.
557         * tree-flow.h (struct var_ann_d): Update comments.
558         (rewrite_to_new_ssa_names_bb, rewrite_to_new_ssa_names,
559         allocate_ssa_names, find_phi_node_for, dump_tree_ssa,
560         debug_tree_ssa, debug_def_blocks, dump_tree_ssa_stats,
561         debug_tree_ssa_stats, rewrite_ssa_into_ssa,
562         dump_repl_tbl, debug_repl_tbl, dump_names_replaced_by,
563         debug_names_replaced_by): Remove declarations.
564         (delete_update_ssa, get_current_def, set_current_def): Declare.
565         (rewrite_into_loop_closed_ssa): Add new argument.  Update
566         all callers.
567         * tree-into-ssa.c: Include params.h.
568         (old_virtual_ssa_names): Remove.  Update all users.
569         (need_to_replace_names_p): Remove.  Update all users.
570         (struct update_ssa_stats_d): Declare.
571         (update_ssa_stats): New local.
572         (dump_tree_ssa, debug_tree_ssa, debug_def_blocks,
573         dump_tree_ssa_stats, debug_tree_ssa_stats,
574         dump_update_ssa, debug_update_ssa,
575         dump_names_replaced_by, debug_names_replaced_by): Declare.
576         (get_current_def, set current_def): Make extern.
577         (is_old_name, is_new_name): Protect against references
578         past the end of the sets.
579         (add_new_name_mapping): Assert that OLD and NEW are
580         different SSA names for the same symbol.
581         When adding a virtual mapping, update stats for virtual
582         mapping heuristic.
583         (insert_phi_nodes_for): If UPDATE_P is true, create the
584         LHS of the new PHI by duplicating SSA name VAR.
585         (insert_phi_nodes_1): Remove.  Update all users.
586         (insert_phi_nodes): Remove second argument.  Update all
587         users.
588         (maybe_replace_use, maybe_replace_def): New.
589         (rewrite_update_stmt): Call them.
590         (mark_def_interesting): Remove calls to is_gimple_reg.
591         (prepare_phi_args_for_update): Remove.  Update all users.
592         (prepare_block_for_update): Only process virtual operands
593         and GIMPLE registers in normal form.
594         (prepare_use_sites_for): New.
595         (prepare_names_to_update): Rename from prepare_def_sites.
596         Call prepare_use_sites_for.
597         (dump_update_ssa): Rename from dump_repl_tbl.
598         Update all users.
599         Show statistics for virtual mapping heuristic.
600         (debug_update_ssa): Rename from debug_debug_repl_tbl.
601         (init_update_ssa): Initialize UPDATE_SSA_STATS.
602         (delete_update_ssa): Make extern.
603         (mark_set_for_renaming): If the set is empty, do nothing.
604         (release_ssa_name_after_update_ssa): Update comment.
605         (insert_updated_phi_nodes_for): Do not remove existing
606         PHI nodes for symbols.
607         (switch_virtuals_to_full_rewrite_p): New.
608         (switch_virtuals_to_full_rewrite): New.
609         (update_ssa): Call them.
610         Clear REWRITE_THIS_STMT and REGISTER_DEFS_IN_THIS_STMT
611         for every statement before updating.
612         If all the names in NEW_SSA_NAMES have been marked for
613         removal, do nothing.
614         Only start at the top of the CFG if there are symbols in
615         SYMS_TO_RENAME.
616         (ssa_rewrite_finalize_block): Remove.
617         (ssa_register_new_def): Remove.
618         (ssa_rewrite_stmt): Remove.
619         (ssa_rewrite_phi_arguments): Remove.
620         (ssa_rewrite_initialize_block): Remove.
621         (ssa_mark_def_sites): Remove.
622         (ssa_mark_def_sites_initialize_block): Remove.
623         (ssa_mark_phi_uses): Remove.
624         (rewrite_ssa_into_ssa): Remove.
625         * tree-phinodes.c (find_phi_node_for): Remove.
626         * tree-ssa-loop-ivcanon.c (try_unroll_loop_completely):
627         Call update_ssa.
628         * tree-ssa-loop-unswitch.c (tree_ssa_unswitch_loops):
629         Remove calls to verify_dominators and
630         verify_loop_structure.
631         (tree_unswitch_single_loop): Call update_ssa.
632         * tree-ssa.c (verify_ssa): Assert that need_ssa_update_p
633         returns false.
634         Call verify_stmts.
635         (delete_tree_ssa): Assert that need_ssa_update_p returns
636         false.
637         * tree-vect-transform.c (vect_transform_loop): Call update_ssa.
638         * tree-vectorizer.c (allocate_new_names, rename_def_op,
639         free_new_names): Remove.  Update all users.
640         (rename_use_op): Call get_current_def.
641         (rename_variables_in_bb): Do not handle any real or
642         virtual definition.
643         (slpeel_update_phis_for_duplicate_loop): Call
644         get_current_def and set_current_def instead of using
645         SSA_NAME_AUX.
646         (slpeel_update_phi_nodes_for_guard2): Reformat comments.
647         (slpeel_can_duplicate_loop_p): Call need_ssa_update_p,
648         ssa_names_to_replace and delete_update_ssa.
649         * doc/invoke.texi: Document --param min-virtual-mappings
650         and --param virtual-mappings-ratio.
651
652 2005-04-22  Diego Novillo  <dnovillo@redhat.com>
653
654         * tree-cfg.c (tree_duplicate_bb): Call create_new_def_for
655         for newly created PHI nodes.
656         Call create_new_def_for for every new V_MAY_DEF and
657         V_MUST_DEF on the copied statement.
658         (struct ssa_name_map_entry): Remove.
659         (ssa_name_map_entry_hash): Remove.
660         (ssa_name_map_entry_eq): Remove.
661         (allocate_ssa_names): Remove.
662         (rewrite_to_new_ssa_names_def): Remove.
663         (rewrite_to_new_ssa_names_use): Remove.
664         (rewrite_to_new_ssa_names_bb): Remove.
665         (rewrite_to_new_ssa_names): Remove.
666         (tree_duplicate_sese_region): Remove variables ver,
667         definitions, phi, ssa_name_map and bi.
668         Call need_ssa_update_p instead of any_marked_for_rewrite_p.
669         Call update_ssa.
670         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Call
671         update_ssa instead of rewrite_ssa_into_ssa.
672         * tree-ssa-loop-manip.c (add_exit_phis_edge): Call
673         create_new_def_for.
674         (find_uses_to_rename_use): Add argument 'need_phis'.
675         (find_uses_to_rename_stmt): Do not scan virtual operands.
676         (find_uses_to_rename): Only scan PHI nodes for
677         non-virtual names.
678         (rewrite_into_loop_closed_ssa): Call update_ssa.
679         (check_loop_closed_ssa_use): Ignore virtual operands.
680         (check_loop_closed_ssa_stmt): Likewise.
681         (verify_loop_closed_ssa): Do nothing if CURRENT_LOOPS is
682         NULL.
683         (rename_variables, set_phi_def_stmts): Remove.
684         (tree_duplicate_loop_to_header_edge): Reformat comment.
685         Remove variables BB, I and DEFINITIONS.
686         Call need_ssa_update_p.
687         Call update_ssa.
688         (lv_adjust_loop_header_phi): Reformat comment.
689         * tree-ssanames.c (ssa_names_to_rewrite): Remove.
690         (marked_for_rewrite_p, any_marked_for_rewrite_p,
691         mark_for_rewrite, unmark_all_for_rewrite,
692         marked_ssa_names): Remove.  Update all users.
693         (release_ssa_name): If VAR has been registered for SSA
694         updating, do nothing.
695         * tree-vrp.c (new_ssa_names, old_ssa_names): Remove.
696         (build_assert_expr_for): Call register_new_name_mapping.
697         (insert_range_assertions): Update call to update_ssa.
698         * tree.h (mark_for_rewrite, unmark_all_for_rewrite,
699         marked_for_rewrite_p, any_marked_for_rewrite_p,
700         marked_ssa_names): Remove.
701
702 2005-04-22  Jeff Law  <law@redhat.com>
703
704         * tree-ssa-dom.c (block_defs_stack): Remove, no longer needed.
705         (restore_currdefs_to_original_value): Likewise.
706         (register_definitions_for_stmt): Likewise.
707         (tree_ssa_dominator_optimize): No longer initialize CURRENT_DEF
708         for each variable.  Do not allocate/free block_defs_stack either.
709         Do not iterate if we just thread jumps.  Only iterate if the
710         tree_cleanup_cfg does useful work (temporary).
711         (dom_opt_initialize_block): No longer push a marker on
712         BLOCK_DEFS_STACK.
713         (dom_opt_finalize_block): Removal call to restore currdefs.
714         Relax restrictions for recording edge equivalences.
715         (record_equivalences_from_phis): No longer need to track
716         CURRENT_DEF.
717         (optimize_stmt): Similarly.
718         (thread_across_edge): Simplify by removing the requirement that
719         statements in the block we are threading through must be nops.
720         (initialize_hash_element): Handle GOTO_EXPR.
721
722 2005-04-22  David S. Miller  <davem@davemloft.net>
723
724         * sched-vis.c (print_value): Use CONST_DOUBLE_LOW and
725         CONST_DOUBLE_HIGH.
726         * config/sparc/sparc.c (sparc_rtx_costs): Likewise, and
727         fix check on CONST_DOUBLE mode.  It should be VOIDmode
728         when it is representing an integer.
729
730 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
731
732         * builtins.c (gimplify_va_arg_expr): Reword comments to avoid
733         'abort'. Use gcc_assert and gcc_unreachable as appropriate.
734         * c-format.c (get_constant, decode_format_attr, get_flag_spec, 
735         find_char_info_specifier_index,
736         find_length_info_modifier_index): Likewise.
737         * c-typeck.c (composite_type, pop_init_level): Likewise.
738         * combine.c (cant_combine_insn_p, try_combine): Likewise.
739         * cse.c (cse_insn): Likewise
740         * dominance.c (calc_dfs_tree): Likewise
741         dwarf2out.c (loc_descriptor_from_tree_1,
742         add_abstract_origin_attribute, force_decl_die,
743         force_type_die): Likewise
744         emit-rtl.c (operand_subword_force): Likewise
745         explow.c (hard_function_value): Likewise
746         expmed.c (store_bit_field, expand_divmod,
747         emit_store_flag_force): Likewise
748         expr.c (emit_move_multi_word, store_expr,
749         expand_expr_real_1): Likewise
750         final.c (this_is_asm_operands, shorten_branches, final_scan_insn,
751         output_operand): Likewise
752         flow.c (recompute_reg_usage): Likewise
753         * function.c (assign_stack_temp_for_type, assign_temp, 
754         handle_epilogue_set): Likewise
755         * genextract.c (main): Likewise
756         * gimplify.c (mostly_copy_tree_r, gimplify_return_expr,
757         gimplify_modify_expr_rhs, gimplify_expr): Likewise
758         * haifa-sched.c (ready_lastpos, ready_remove_first, ready_element,
759         ready_remove, rm_line_notes, rm_other_notes,
760         schedule_block): Likewise
761         mips-tfile.c (copy_object, out_of_bounds): Likewise
762
763 2005-04-22 David Edelsohn  <edelsohn@gnu.org>
764
765         PR target/20813
766         * config/rs6000/default64.h (TARGET_DEFAULT): Add MASK_PPC_GFXOPT.
767         * config/rs6000/rs6000.c (processor_target_table): Rename rs64a to
768         rs64.  Add MASK_PPC_GFXOPT to powerpc64 and rs64.
769         (rs6000_init_libfuncs): Set TFmode optabs to xlq names if
770         TARGET_XL_COMPAT.
771         * doc/invoke.texi (PowerPC options): Change rs64a to rs64.
772
773 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
774
775         * lambda-code.c: Define VEC(int,heap), VEC(lambda_loop,heap).
776         (gcc_tree_to_linear_expression): Convert to heap allocated
777         vectors.
778         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
779         lbv_to_gcc_expression, lle_to_gcc_expression,
780         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest, 
781         perfect_nestify): Likewise.
782         lambda.h (gcc_loopnest_to_lambda_loopnest,
783         lambda_loopnest_to_gcc_loopnest): Likewise.
784         tree-loop-linear.c (linear_transform_loops): Likewise.
785
786 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
787
788         * config/sparc/predicates.md (arith_double_operand): Use
789         trunc_int_for_mode if HOST_BITS_PER_WIDE_INT >=64.
790         * config/sparc/sparc.md (movqi, movhi, movsi, movqi): Use gen_int_mode.
791         (DImode, DFmode constant splitters): Likewise.  Remove code for
792         TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT < 64.
793         (logical constant splitters): Use const_int_operand predicate.
794         (lshrsi3_extend): Remove code for TARGET_ARCH64 &&
795         HOST_BITS_PER_WIDE_INT < 64.
796
797 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
798
799         * config/pa/pa.c (legitimize_pic_address): Use gcc_assert and
800         gcc_unreachable as appropriate.
801         (force_mode, emit_move_sequence, singlemove_string,
802         output_move_double, output_fp_move_double, find_addr_reg,
803         output_block_move, output_block_clear, output_and,
804         output_64bit_and, output_ior, output_64bit_ior, store_reg_modify,
805         pa_adjust_cost, pa_issue_rate, print_operand,
806         output_global_address, output_arg_descriptor, output_cbranch,
807         output_lbranch, output_bb, output_bvb, output_dbra, output_movb,
808         output_call): Likewise.
809         * config/pa/pa.md (call, call_value, sibcall, sibcall_value,
810         prefetch, prefetch_cc, prefetch_nocc): Likewise.
811
812 2005-04-22  Zdenek Dvorak  <dvorakz@suse.cz>
813
814         * Makefile.in (LIBGCOV): Add _gcov_interval_profiler,
815         _gcov_pow2_profiler and _gcov_one_value_profiler.
816         (tree-profile.o): Add GGC_H and gt-tree-profile.h dependency.
817         (GTFILES): Add $(srcdir)/tree-profile.c.
818         * gcov-io.h (__gcov_interval_profiler, __gcov_pow2_profiler,
819         __gcov_one_value_profiler): Declare.
820         * gimplify.c (force_gimple_operand): Check whether the statements
821         should be produced in ssa form.
822         (force_gimple_operand_bsi): New function.
823         * libgcov.c (__gcov_interval_profiler, __gcov_pow2_profiler,
824         __gcov_one_value_profiler): New functions.
825         * rtl-profile.c (rtl_gen_pow2_profiler): Only measure whether
826         the profiled value is a power of two or not.
827         * tree-cfg.c (tree_block_ends_with_condjump_p): Handle empty blocks.
828         * tree-flow.h (in_ssa_p): Declare.
829         (force_gimple_operand_bsi): Declare.
830         * tree-into-ssa.c (in_ssa_p): New variable.
831         (rewrite_into_ssa): Set in_ssa_p.
832         * tree-outof-ssa.c (rewrite_out_of_ssa): Set in_ssa_p.
833         * tree-profile.c: Include ggc.h and gt-tree-profile.h.
834         (gcov_type_node, tree_interval_profiler_fn, tree_pow2_profiler_fn,
835         tree_one_value_profiler_fn): New variables.
836         (tree_init_edge_profiler): Initialize the profiler function decls.
837         (tree_gen_edge_profiler): Use global gcov_type_node.
838         (prepare_instrumented_value): New function.
839         (tree_gen_interval_profiler, tree_gen_interval_profiler,
840         tree_gen_one_value_profiler): Call the library functions instead of
841         creating instrumentation code.
842         * tree.c (build_fn_decl): New function.
843         * tree.h (build_fn_decl): Declare.
844         * value-prof.c (rtl_divmod_values_to_profile,
845         rtl_find_values_to_profile, rtl_mod_pow2_value_transform,
846         tree_mod_pow2_value_transform, tree_find_values_to_profile):
847         Do not handle may_be_other and precise values of exponents at pow2
848         profiler.
849         (tree_mod_subtract_transform): Reflect that value field of
850         histogram has changed meaning.
851         (tree_divmod_values_to_profile): Record the values correctly.
852         (tree_values_to_profile): Update comment.
853         * value-prof.h (struct histogram_value_t): Remove pow2 data.
854
855 2005-04-22  Joseph S. Myers  <joseph@codesourcery.com>
856
857         * varasm.c (do_assemble_alias): Return early if TREE_ASM_WRITTEN
858         (decl).
859
860 2005-04-22  Nathan Sidwell  <nathan@codesourcery.com>
861
862         * config/i386/i386.md (length_immediate): Use gcc_assert or
863         gcc_unreachable, as appropriate.
864         (*movsi_1, *movqi_1, reload_outqi, *movdi_1_rex64, *pushsf,
865         *pushsf_rex64, *truncxfsf2_mixed, *truncxfsf2_i387,
866         *truncxfdf2_mixed, *truncxfdf2_i387, *adddi_1_rex64,
867         *adddi_2_rex64, *adddi_3_rex64, *adddi_4_rex64, *adddi_5_rex64,
868         *addsi_1, addsi_1_zext, *addsi_2, *addsi_2_zext, *addsi_3,
869         *addsi_3_zext, *addsi_4, *addsi_5, *addhi_1_lea, *addhi_1,
870         *addhi_2, *addhi_3, *addhi_4, *addhi_5, *addqi_1_lea, *addqi_1,
871         *addqi_1_slp, *addqi_2, *addqi_3, *addqi_4, *addqi_5, addqi_ext_1,
872         *addqi_ext_1_rex64, *anddi_1_rex64, *andsi_1, *andhi_1,
873         *ashldi3_1_rex64, *ashldi3_cmp_rex64, *ashlsi3_1, *ashlsi3_1_zext,
874         *ashlsi3_cmp, *ashlsi3_cmp_zext, *ashlhi3_1_lea, *ashlhi3_1,
875         *ashlhi3_cmp, *ashlqi3_1_lea, *ashlqi3_1, *ashlqi3_cmp,
876         pro_epilogue_adjust_stack_1, pro_epilogue_adjust_stack_rex64,
877         pro_epilogue_adjust_stack_rex64_2, prefetch, *prefetch_sse,
878         *prefetch_sse_rex): Likewise.
879         * config/i386/predicates.md (x86_64_immediate_operand,
880         x86_64_zext_immediate_operand, symbolic_operand,
881         no_seg_address_operand, aligned_operand,
882         memory_displacement_operand): Likewise.
883         * config/i386/sse.md (*mov<mode>_internal,
884         *movv2df_internal): Likewise.
885
886 2005-04-22  Jan Hubicka  <jh@suse.cz>
887
888         * Makefile.in (ipa.o, ipa-inline.o): New files.
889         * cgraph.h (cgraph_remove_unreachable_nodes, cgraph_postorder,
890         cgraph_decide_inlining_incrementally, cgraph_clone_inlined_nodes,
891         cgraph_mark_inline_edge, cgraph_default_inline_p): Declare.
892         * cgraphunit.c (cgraph_default_inline_p,
893         cgraph_decide_inlining_incrementally,  ncalls_inlined,
894         nfunctions_inlined, initial_insns, overall_insns, 
895         cgraph_estimate_size_after_inlining, cgraph_estimate_growth,
896         cgraph_clone_inlined_nodes, cgraph_mark_inline_edge,
897         cgraph_mark_inline, cgraph_check_inline_limits,
898         cgraph_default_inline_p, cgraph_recursive_inlining_p,
899         update_callee_keys, lookup_recursive_calls,
900         cgraph_decide_recursive_inlining, cgraph_set_inline_failed,
901         cgraph_decide_inlining_of_small_functions, cgraph_decide_inlining,
902         cgraph_decide_inlining_incrementally, cgraph_gate_inlining,
903         pass_ipa_inline): Move to ipa-inline.c
904         (cgraph_postorder, cgraph_remove_unreachable_nodes): Move to ipa.c
905         * ipa.c: New file.
906         * ipa-inline.c: New file.
907
908 2005-04-22  Eric Botcazou  <ebotcazou@libertysurf.fr>
909
910         * doc/invoke.texi (SPARC options): Document that -mapp-regs
911         is turned off by default on Solaris.
912
913 2005-04-21  Roger Sayle  <roger@eyesopen.com>
914
915         * c-common.h (objc_build_method_signature): Update prototype.
916         * stub-objc.c (objc_build_method_signature): Update the stub
917         implementation to accept and ignore additional parameter.
918         * c-parser.c (c_parser_objc_method_decl): Reorgnize to pass
919         the value of ellipsis to objc_build_method_signature instead
920         of setting TREE_OVERFLOW on the parms TREE_LIST node.
921
922 2005-04-21  Geoffrey Keating  <geoffk@apple.com>
923
924         * config/rs6000/rs6000-protos.h (rs6000_emit_sync): New.
925         * config/rs6000/rs6000.c (rs6000_emit_vector_compare): Use
926         gen_rtx_* not gen_rtx_fmt_*.
927         (rs6000_emit_vector_select): Likewise.
928         (rs6000_emit_sync): New.
929         * config/rs6000/rs6000.md (GPR, INT, INT1): New mode macros.
930         (larx, stcx, cmp): New mode substitutions.
931         (UNSPEC_SYNC, UNSPEC_SYNC_OP, UNSPEC_SYNC_SWAP, UNSPEC_LWSYNC,
932         UNSPEC_ISYNC): New constants.
933         (rlwinm): Give name.
934         (memory_barrier, isync, lwsync): New insns.
935         (sync_compare_and_swap<mode>, sync_lock_test_and_set<mode>): New insn.
936         (sync_lock_release<mode>): New expander.
937         (sync_add<mode>, sync_sub<mode>, sync_ior<mode>, sync_and<mode>,
938         sync_xor<mode>, sync_nand<mode>, sync_old_add<mode>,
939         sync_old_sub<mode>, sync_old_ior<mode>, sync_old_and<mode>,
940         sync_old_xor<mode>, sync_old_nand<mode>, sync_new_add<mode>,
941         sync_new_sub<mode>, sync_new_ior<mode>, sync_new_and<mode>,
942         sync_new_xor<mode>, sync_new_nand<mode>): New expanders.
943         (sync_add<mode>_internal, sync_addshort_internal,
944         sync_sub<mode>_internal, sync_andsi_internal, sync_anddi_internal,
945         sync_boolsi_internal, sync_booldi_internal, sync_boolc<mode>_internal,
946         sync_boolc<mode>_internal2, sync_boolcc<mode>_internal): New insns.
947
948         * doc/md.texi (Standard Names): sync_compare_and_swap's operand 0
949         is the memory before, not after, the operation.  Clarify
950         barrier requirements.
951
952 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
953
954         * cfghooks.h (struct cfg_hooks): Reword comments to avoid 'abort'.
955         * lambda.h (lambda_vector_min_nz): Likewise.
956         * langhooks.h (struct lang_hooks_for_types,
957         struct lang_hooks): Likewise.
958         * output.h (assemble_integer, this_is_asm_operands): Likewise.
959         * tree.h: Likewise.
960         * vec.h: Likewise.
961         * tree-flow-inline.h (relink_imm_use): Use gcc_assert.
962         
963         * optabs.c (prepare_cmp_insn, emit_cmp_and_jump_insns): Reword
964         comments to avoid 'abort'.  Use gcc_assert as necessary.
965         * opts.c (common_handle_option): Likewise.
966         * pretty-print.c (pp_base_format_text): Likewise.
967         * print-rtl.c (print_rtx): Likewise.
968         * read-rtl.c (read_rtx_filename, read_rtx_1): Likewise.
969         * regmove.c (try_auto_increment): Likewise.
970         * reload.c (find_valid_class, find_reloads_toplev,
971         find_equiv_reg): Likewise.
972         * reload1.c (reload, forget_old_reloads_1, function_invariant_p, 
973         merge_assigned_reloads): Likewise.
974         * tree-inline.c (inline_forbidden_p_1,
975         estimate_num_insns_1): Likewise.
976         * tree-optimize.c (execute_todo): Likewise.
977         * tree-outof-ssa.c (eliminate_phi): Likewise.
978         * tree-ssa-alias.c (add_pointed_to_expr): Likewise.
979         * tree-ssa-ccp.c (maybe_fold_stmt_indirect): Likewise.
980         * tree-ssa-operands.c (parse_ssa_operands,
981         get_indirect_ref_operands, create_ssa_artficial_load_stmt): Likewise.
982         * tree-ssa-pre.c (find_or_generate_expression): Likewise.
983         * tree-ssanames.c (release_ssa_name): Likewise.
984         * tree.c (int_bit_position, int_byte_position, tree_low_cst, 
985         walk_tree): Likewise.
986
987         * tree-ssa-operands.c (verify_abort): Fold into ..
988         (verify_imm_links): ... here.
989
990 2005-04-21  Richard Henderson  <rth@redhat.com>
991
992         * config/alpha/sync.md (sync_new_nand<I48MODE>): Fix constraints
993         on non-memory operand for previous inversion.
994
995 2005-04-21  Devang Patel  <dpatel@apple.com>
996
997         PR optimization/20994
998         * tree-if-conv.c (find_phi_replacement_condition): Avoid generating
999         x = !(a == b) : p , q;.
1000         (pass_if_conversion): Verify stmts and flow.
1001         
1002 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1003
1004         * optabs.c (gen_conditional_trap): Restore #define.
1005
1006         * alias.c (true_dependence): Remove 'abort' from comments. Use
1007         gcc_assert and gcc_unreachable as appropriate.
1008         (canon_true_dependence): Likewise.
1009         * bb-reorder.c (connect_traces): Likewise.
1010         * c-common.c (c_add_case_label): Likewise.
1011         * c-decl.c (finish_function): Likewise.
1012         * caller-save.c (insert_restore, insert_save): Likewise.
1013         * cfg.c (update_bb_profile_for_threading): Likewise.
1014         * cfganal.c (flow_active_insn_p): Likewise.
1015         * cfgexpand.c (add_reg_br_prob_note): Likewise.
1016         * cfgrtl.c (rtl_redirect_edge_and_branch_force, rtl_split_edge,
1017         cfg_layout_merge_blocks): Likewise.
1018         * ifcvt.c (cond_exec_process_insns, merge_if_block,
1019         find_if_block): Likewise.
1020         * integrate.c (allocate_initial_values): Likewise.
1021         * jump.c (reverse_condition, reverse_condition_maybe_unordered,
1022         swap_condition, unsigned_condition, signed_condition,
1023         mark_jump_label, invert_jump_1, rtx_renumbered_equal_p,
1024         reg_or_subregno): Likewise.
1025         * lambda-code.c (lambda_compute_auxillary_space,
1026         lambda_transform_legal_p): Likewise.
1027         * lambda-mat.c (lambda_matrix_inverse_hard): Likewise.
1028         * langhooks.c (lhd_set_decl_assembler_name, lhd_type_promotes_to,
1029         lhd_incomplete_type_error, lhd_expand_expr,
1030         lhd_types_compatible_p, lhd_tree_size): Likewise.
1031         * lcm.c (create_pre_exit, optimize_mode_switching): Likewise.
1032         * local-alloc.c (update_equiv_regs): Likewise.
1033         * loop-unroll.c (peel_loop_completely
1034         unroll_loop_constant_iterations, unroll_loop_runtime_iterations,
1035         peel_loop_simple, unroll_loop_stupid,
1036         analyze_iv_to_split_insn): Likewise.
1037         * loop.c (gen_prefetch, find_and_verify_loops,
1038         basic_induction_var): Likewise.
1039         * modulo-sched.c (normalize_sched_times, check_nodes_order): Likewise.
1040         * value-prof.c (tree_find_values_to_profile): Likewise.
1041         * varasm.c (named_section, default_assemble_integer,
1042         decode_addr_const): Likewise.
1043
1044 2005-04-21 Alan Modra  <amodra@bigpond.net.au>
1045            Fariborz Jahanian <fjahanian@apple.com>
1046
1047         * config/rs6000/rs6000.c (rs6000_arg_partial_bytes): Fix size of
1048         portion of argument passed in fpr.
1049         * expr.c (emit_push_insn): Fix computation of 'offset' used to
1050         decide on partial argument save on stack.
1051
1052 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1053
1054         * config/sparc/predicates.md, config/sparc/sparc.md: Fix
1055         comment typos.
1056
1057 2005-04-21  Jan Hubicka  <jh@suse.cz>
1058
1059         * cgraphunit.c: Include tree-pass.h
1060         (cgraph_decide_recursive_inlining,
1061         cgraph_decide_inlining_of_small_function, cgraph_set_inline_failed,
1062         cgraph_decide_inlining): Dump goes to dump_file.
1063         (cgraph_optimize): Call ipa passes instead of inliner.
1064         (cgraph_gate_inlining, pass_ipa_inline): New.
1065         * tree-optimize.c (all_ipa_passes): New static variable.
1066         (register_one_dump_file): Dead with IPA passes.
1067         (register_dump_files): Likewise.
1068         (init_tree_optimization_passes): Initialize IPA passes.
1069         (execute_todo): Do cgraph dump when asked to, do not dump function body
1070         for IPA pass.
1071         * tree-pass.h (TODO_dump_cgraph): New macro.
1072         (ipa_passes): Declare.
1073         * Makefile.in (cgraphunit.o): Add dependency on cgraphunit.h
1074
1075 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1076
1077         * config/i386/i386.c (type_natural_mode): Use gcc_unreachable and
1078         gcc_assert instead of abort.
1079         (classify_argument, examine_argument, construct_container,
1080         contains_128bit_aligned_vector_p, ix86_check_movabs,
1081         standard_80387_constant_opcode, standard_80387_constant_rtx,
1082         ix86_initial_elimination_offset, ix86_compute_frame_layout,
1083         pro_epilogue_adjust_stack, ix86_expand_epilogue,
1084         ix86_address_cost, legitimate_address_p, legitimize_pic_address,
1085         legitimize_tls_address, output_pic_addr_const,
1086         i386_output_dwarf_dtprel, put_condition_code, print_reg,
1087         get_some_local_dynamic_name, print_operand, print_operand_address,
1088         output_387_binary_op, emit_i387_cw_initialization,
1089         output_fix_trunc, output_fp_compare, ix86_output_addr_vec_elt,
1090         ix86_expand_clear, ix86_expand_binary_operator,
1091         ix86_expand_unary_operator, ix86_match_ccmode, ix86_cc_mode,
1092         ix86_cc_modes_compatible, ix86_fp_comparison_codes,
1093         ix86_fp_comparison_arithmetics_cost, ix86_expand_fp_compare,
1094         ix86_expand_branch, ix86_expand_setcc,
1095         ix86_expand_carry_flag_compare, ix86_expand_fp_movcc,
1096         ix86_expand_int_addcc, ix86_split_to_parts, ix86_split_long_move,
1097         ix86_expand_movmem, ix86_expand_call, assign_386_stack_local,
1098         memory_address_length, ix86_attr_length_immediate_default,
1099         ix86_attr_length_address_default, ix86_agi_dependant,
1100         x86_initialize_trampoline, ix86_init_mmx_sse_builtins,
1101         ix86_expand_binop_builtin, ix86_force_to_memory,
1102         ix86_secondary_memory_needed, ix86_avoid_jump_misspredicts,
1103         x86_emit_floatuns): Likewise.
1104         * config/i386/netware.c (gen_regparm_prefix,
1105         i386_nlm_strip_name_encoding): Likewise.
1106         * config/i386/winnt.c (i386_pe_mark_dllexport): Likewise.
1107
1108 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1109
1110         * optabs.c (gen_condiational_trap): Remove #define.
1111         (add_equal_note): Assertify. Remove explicit indirection from
1112         call via function pointer.
1113         (expand_ternary_op, expand_simple_binop, expand_binop,
1114         expand_twoval_unop, expand_twoval_binop,
1115         expand_twoval_binop_libfunc, expand_simple_unop expand_unop,
1116         emit_unop_insn,  emit_no_conflict_block,  prepare_cmp_insn,
1117         prepare_operand emit_cmp_and_jump_insn_1, emit_cmp_and_jump_insns,
1118         prepare_float_lib_cmp, emit_conditional_move,
1119         emit_conditional_add, gen_add2_insn, gen_add3_insn,
1120         have_add2_insn, gen_sub2_insn, gen_sub3_insn, have_sub2_insn,
1121         expand_float, expand_fix, debug_optab_libfuncs, gen_cond_trap,
1122         vector_compare_rtx, expand_vec_cond_expr): Likewise.
1123
1124 2005-04-21  Nathan Sidwell  <nathan@codesourcery.com>
1125
1126         * vec.h: Update API to separate allocation mechanism from type.
1127         (VEC_safe_grow): New.
1128         * vec.c (calculate_allocation): New.
1129         (vec_gc_o_reserve, vec_heap_o_reserve): Adjust.
1130         (vec_gc_free, vec_heap_free): Remove.
1131         * gengtype-lex.l (DEF_VEC_): Process mult-argument macros.  Adjust.
1132         (VEC): Likewise.
1133         (mangle_macro_name): New.
1134         (struct macro_def): New.
1135         (struct macro): Add multiple argument values.
1136         (macro_expans_end): New.
1137         (push_macro_expansion):  Chain on new macro. Process multiple
1138         args, create follow on expansion. Return follow on argument.
1139         (macro_input): Deal with multiple arguments.
1140         
1141         * tree.h: Define VEC(tree,heap) and VEC(tree,gc).
1142         (struct tree_binfo): Adjust.
1143         * basic-block.h: Define VEC(edge,gc).
1144         (struct edge_def): Adjust.
1145         (struct basic_block_def, struct edge_iterator): Likewise.
1146         (ei_container, ei_start_1, ei_last_1): Likewise.
1147         * cfg.c (connect_src, connect_dest): Likewise.
1148         * cfgrtl.c (force_nonfallthru_and_redirect)
1149         * dbxout.c (dbxout_type)
1150         * dwarf2out.c (gen_member_die)
1151         * lambda-code.c: Define VEC(int,gc), VEC(lambda_loop,gc).
1152         (gcc_tree_to_linear_expression): Adjust.
1153         (gcc_loop_to_lambda_loop, gcc_loopnest_to_lambda_loopnest,
1154         lbv_to_gcc_expression, lle_to_gcc_expression,
1155         lambda_loopnest_to_gcc_loopnest, can_convert_to_perfect_nest,
1156         perfect_nestify): Likewise.
1157         * lambda.h (gcc_loopnest_to_lambda_loopnest,
1158         lambda_loopnest_to_gcc_loopnest): Adjust prototypes.
1159         * profile.c (instrument_values): Adjust.
1160         * tree-cfg.c (modified_noreturn_calls): Adjust.
1161         (remove_fallthru_edge): Likewise.
1162         * tree-dump.c (dequeue_and_dump): Adjust.
1163         * tree-flow-inline.h (mark_stmt_modified): Adjust.
1164         * tree-flow.h (modified_noreturn_calls): Adjust.
1165         (tree_on_heap): Remove. (yay!)
1166         (register_new_def): Adjust.
1167         * tree-into-ssa.c: Define VEC(int,heap).
1168         (block_defs_stack): Adjust.
1169         (find_idf, insert_phi_nodes, register_new_def,
1170         rewrite_initialize_block, rewrite_finalize_block,
1171         register_new_update_single, rewrite_update_init_block,
1172         rewrite_update_fini_block, rewrite_blocks,
1173         ssa_rewrite_finalize_block, ssa_register_new_def,
1174         ssa_rewrite_initialize_block, rewrite_ssa_into_ssa): Likewise.
1175         * tree-loop-linear.c (linear_transform_loops): Adjust.
1176         * tree-ssa-alias.c: Define VEC(fieldoff_t,heap).
1177         (push_fields_onto_fieldstack, create_overlap_variables_for): Adjust.
1178         * tree-ssa-dom.c (avail_exprs_stack, block_defs_stack,
1179         stmts_to_rescan, const_and_copies_stack, nonzero_vars_stack,
1180         vrp_variables_stack): Adjust declarations.
1181         (tree_ssa_dominator_optimize): Adjust.
1182         (dom_opt_initialize_block, remove_local_expressions_from_table,
1183         restore_nonzero_vars_to_original_value,
1184         restore_vars_to_original_value,
1185         restore_currdefs_to_original_value, dom_opt_finalize_block,
1186         record_var_is_nonzero, record_cond, record_const_or_copy_1,
1187         optimize_stmt, update_rhs_and_lookup_avail_expr,
1188         lookup_avail_expr, record_range): Likewise.
1189         * tree-ssa-pre.c: Define VEC(basic_block,heap).
1190         (compute_antic_aux): Adjust.
1191         (inserted_exprs, create_expression_by_pieces, 
1192         insert_into_preds_of_block, eliminate, mark_operand_necessary, 
1193         remove_dead_inserted_code, fini_pre): Likewise.
1194         * tree-ssa-propagate.c (interesting_ssa_edges): Adjust.
1195         (varying_ssa_edges, add_ssa_edge, process_ssa_edge_worklist. 
1196         ssa_prop_init): Likewise.
1197         * tree-ssa.c: Define VEC(bitmap,heap).
1198         (verify_name_tags): Adjust.
1199         * value-prof.c (rtl_divmod_values_to_profile): Adjust.
1200         (insn_prefetch_values_to_profile, rtl_find_values_to_profile,
1201         tree_divmod_values_to_profile, tree_find_values_to_profile,
1202         value_profile_transformations): Likewise.
1203         * value-prof.h: Define VEC(histogram_value,heap).
1204         * varasm.c: Remove alias_pair pointer typedef, define
1205         VEC(alias_pair,gc).
1206         (finish_aliases_1, finish_aliases_2, assemble_alias): Adjust.
1207         
1208         * config/pa/pa.c (typedef extern_symbol): Typedef the structure,
1209         not a pointer to it.  Create an object vector.
1210         (extern_symbols): Turn into an object vector.
1211         (pa_hpux_asm_output_external, pa_hpux_file_end): Adjust.
1212
1213 2005-04-21  Sebastian Pop  <pop@cri.ensmp.fr>
1214
1215         PR/20742
1216         * Makefile.in (tree-chrec.o): Depend on params.h.
1217         * params.def (PARAM_SCEV_MAX_EXPR_SIZE): New parameter with
1218         default value 20.
1219         * tree-chrec.c: Depend on params.h.  Replace build with buildN,
1220         and fold build with fold_buildN.
1221         (chrec_fold_plus_1): Fail with a chrec_don_know when the size of
1222         the expression exceeds PARAM_SCEV_MAX_EXPR_SIZE.
1223         (tree_contains_chrecs): Compute an estimation of the size of the
1224         given expression.
1225         * tree-chrec.h (tree_contains_chrecs): Modify its declaration.
1226         (tree_does_not_contain_chrecs): Update the use of tree_contains_chrecs.
1227         * tree-scalar-evolution.c (simple_iv): Ditto.
1228         * doc/invoke.texi (scev-max-expr-size): Documented.
1229
1230 2005-04-21  Richard Sandiford  <rsandifo@redhat.com>
1231
1232         * config.gcc (*-*-darwin*): Add darwin.opt to $extra_options.
1233         (i[34567]86-pc-msdosdjgpp*): Likewise i386/djgpp.opt.
1234         (i[34567]86-*-lynxos*, powerpc-*-lynxos*): Likewise lynx.opt.
1235         (i[34567]86-*-sco3.2v5*): Likewise i386/sco5.opt.
1236         (i[34567]86-*-pe, i[34567]86-*-cygwin*, i[34567]86-*-mingw32*)
1237         (i[34567]86-*-uwin*): Likewise i386/cygming.opt.
1238         * config/darwin.h (darwin_one_byte_bool, darwin_fix_and_continue)
1239         (darwin_fix_and_continue_switch, SUBTARGET_OPTIONS): Delete.
1240         * config/darwin.c (darwin_one_byte_bool, darwin_fix_and_continue)
1241         (darwin_fix_and_continue_switch): Delete.
1242         * config/lynx.h (SUBTARGET_OS_LYNX_SWITCHES): Delete.
1243         (SUBTARGET_SWITCHES): Delete.
1244         * config/i386/i386.h (target_flags, MASK_80387, MASK_RTD)
1245         (MASK_ALIGN_DOUBLE, MASK_SVR3_SHLIB, MASK_IEEE_FP, MASK_FLOAT_RETURNS)
1246         (MASK_NO_FANCY_MATH_387, MASK_OMIT_LEAF_FRAME_POINTER)
1247         (MASK_STACK_PROBE, MASK_NO_ALIGN_STROPS, MASK_INLINE_ALL_STROPS)
1248         (MASK_NO_PUSH_ARGS, MASK_ACCUMULATE_OUTGOING_ARGS, MASK_MMX)
1249         (MASK_SSE, MASK_SSE2, MASK_SSE3, MASK_3DNOW, MASK_3DNOW_A)
1250         (MASK_128BIT_LONG_DOUBLE, MASK_64BIT, MASK_MS_BITFIELD_LAYOUT)
1251         (MASK_TLS_DIRECT_SEG_REFS, MASK_NO_RED_ZONE, TARGET_80387)
1252         (TARGET_RTD, TARGET_ALIGN_DOUBLE, TARGET_PUSH_ARGS)
1253         (TARGET_ACCUMULATE_OUTGOING_ARGS, TARGET_SVR3_SHLIB, TARGET_IEEE_FP)
1254         (TARGET_128BIT_LONG_DOUBLE, TARGET_NO_FANCY_MATH_387)
1255         (TARGET_USE_FANCY_MATH_387, TARGET_OMIT_LEAF_FRAME_POINTER)
1256         (TARGET_DEBUG_ADDR, TARGET_DEBUG_ARG): Delete.
1257         (TARGET_FLOAT_RETURNS_IN_80387): Make an alias of TARGET_FLOAT_RETURNS.
1258         (TARGET_64BIT): Undef before redefining.
1259         (TARGET_TLS_DIRECT_SEG_REFS, TARGET_STACK_PROBE)
1260         (TARGET_ALIGN_STRINGOPS, TARGET_INLINE_ALL_STRINGOPS, TARGET_SSE)
1261         (TARGET_SSE2, TARGET_SSE3, TARGET_MMX, TARGET_3DNOW, TARGET_3DNOW_A)
1262         (TARGET_RED_ZONE, TARGET_USE_MS_BITFIELD_LAYOUT, TARGET_SWITCHES)
1263         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS)
1264         (ix86_fpmath_string, ix86_tls_dialect_string, ix86_cmodel_string)
1265         (ix86_asm_string, ix86_regparm, ix86_regparm_string)
1266         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1267         (ix86_debug_arg_string, ix86_debug_addr_string)
1268         (ix86_align_loops_string, ix86_align_jumps_string)
1269         (ix86_align_funcs_string): Delete.
1270         * config/i386/cygming.h (MASK_NOP_FUN_DLLIMPORT)
1271         (TARGET_NOP_FUN_DLLIMPORT, SUBTARGET_SWITCHES): Delete.
1272         * config/i386/djgpp.h (MASK_BNU210, SUBTARGET_SWITCHES): Delete.
1273         (SUBTARGET_OVERRIDE_OPTIONS): Check TARGET_BNU210.
1274         * config/i386/lynx.h (SUBTARGET_SWITCHES): Delete.
1275         * config/i386/sco5.h (MASK_COFF, TARGET_ELF)
1276         (SUBTARGET_SWITCHES): Delete.
1277         * config/i386/i386.c (ix86_debug_arg_string): Delete.
1278         (ix86_debug_addr_string): Delete.
1279         (ix86_cmodel_string, ix86_asm_string, ix86_tls_dialect_string)
1280         (ix86_fpmath_string, ix86_regparm_string, ix86_regparm)
1281         (ix86_align_loops_string, ix86_align_jumps_string)
1282         (ix86_preferred_stack_boundary_string, ix86_branch_cost_string)
1283         (ix86_align_funcs_string): Make static.
1284         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
1285         (ix86_handle_option): New function.
1286         (TARGET_USE_MS_BITFIELD_LAYOUT): Delete.
1287         (ix86_ms_bitfield_layout_p): Check TARGET_MS_BITFIELD_LAYOUT.
1288         * config/rs6000/darwin.h (SUBTARGET_OVERRIDE_OPTIONS): Remove handling
1289         of darwin_fix_and_continue_switch.
1290         (darwin_one_byte_bool): Delete.
1291         * config/rs6000/lynx.h (EXTRA_SUBTARGET_SWITCHES): Delete.
1292         * config/rs6000/rs6000.c (rs6000_override_options): Update assignment
1293         to darwin_one_byte_bool.
1294         * config/darwin.opt, config/lynx.opt, config/i386/cygming.opt,
1295         * config/i386/djgpp.opt, config/i386/i386.opt,
1296         * config/i386/sco5.opt: New files.
1297
1298 2005-04-21  Eric Botcazou  <ebotcazou@libertysurf.fr>
1299
1300         * config/sparc/sparc.c (reg_or_0_operand, const1_operand,
1301         fp_zero_operand, fp_register_operand, intreg_operand,
1302         fcc_reg_operand, fcc0_reg_operand, icc_or_fcc_reg_operand,
1303         call_operand, call_operand_address, tgd_symbolic_operand,
1304         tld_symbolic_operand, tie_symbolic_operand, tle_symbolic_operand,
1305         symbolic_operand, symbolic_memory_operand, label_ref_operand,
1306         sp64_medium_pic_operand, data_segment_operand,
1307         text_segment_operand, splittable_symbolic_memory_operand,
1308         reg_or_nonsymb_mem_operand, splittable_immediate_memory_operand,
1309         eq_or_neq, normal_comp_operator, noov_compare_op,
1310         noov_compare64_op, v9_regcmp_op, extend_op, cc_arithop,
1311         cc_arithopn, arith_operand, arith_4096_operand, arith_add_operand,
1312         const64_operand, const64_high_operand, arith11_operand,
1313         arith10_operand, arith_double_operand, arith_double_4096_operand,
1314         arith_double_add_operand, arith11_double_operand,
1315         arith10_double_operand, small_int, small_int_or_double,
1316         uns_small_int, uns_arith_operand, clobbered_register,
1317         input_operand, compare_operand): Delete.
1318         (sparc_emit_set_const32): Use predicates in assertion.  Remove special
1319         code for TARGET_ARCH64 && HOST_BITS_PER_WIDE_INT != 64.
1320         (sparc_emit_set_const64): Call gcc_unreachable if H_B_P_W_I == 32.
1321         (GEN_HIGHINT64, GEN_INT64): Delete.
1322         (sparc_emit_set_safe_HIGH64, gen_safe_SET64, gen_safe_OR64,
1323         gen_safe_XOR64): Adjust for above deletion.
1324         (sparc_emit_set_const64): Support only H_B_P_W_I == 64 and CONST_INTs.
1325         Use 'unsigned HOST_WIDE_INT' instead of 'long' for bitmask.
1326         (legitimate_constant_p): Use const_zero_operand instead.
1327         (sparc_extra_constraint_check): Likewise.
1328         * config/sparc/sparc.h (CONST_DOUBLE_OK_FOR_LETTER_P): Remove 'O'.
1329         (PREFERRED_RELOAD_CLASS): Use const_zero_operand.
1330         (PREDICATE_CODES): Delete.
1331         * config/sparc/sparc.md: Include predicates.md.
1332         (All patterns): Adjust for new predicate names.
1333         (cmpdi, cmpdi_sp64): Use arith_operand predicate.
1334         (movhi_const64_special, movsi_const64_special): Add 'K' constraint.
1335         (movdi): Use general_operand predicate.
1336         (movdi_sp64_dbl): Delete.
1337         (movdi_const64_special): Add 'N' constraint.
1338         (movdicc): Use arith10_operand predicate.
1339         (movdi_cc_sp64, movdi_cc_sp64_trunc): Use arith11_operand predicate.
1340         (movdi_cc_reg_sp64): Use arith10_operand predicate.
1341         (movdi_cc_reg_sp64_trunc): Delete.
1342         (cmp_zero_extract, cmp_zero_extract_sp64): Use small_int_operand.
1343         (adddi3_sp64, cmp_ccx_plus, cmp_ccx_plus_set): Use arith_operand.
1344         (subdi3_sp32): Delete.
1345         (subdi3_insn_sp32): Change to define_insn_and_split.
1346         (subdi3_sp64, cmp_minus_ccx, cmp_minus_ccx_set): Use arith_operand.
1347         (muldi3, muldi3_sp64, muldi3_v8plus): Likewise.
1348         (smulsi3_highpart_v8plus, const_smulsi3_highpart_v8plus,
1349         umulsi3_highpart_v8plus, const_umulsi3_highpart_v8plus): Use
1350         small_int_operand predicate.
1351         (divdi3, udivdi3): Use arith_operand predicate.
1352         (udivsi3, udivsi3_sp32, udivsi3_sp64): Use nonimmediate_operand.
1353         (and<V64I>3_sp64, ior<V64I>3_sp64, xor<V64I:mode>3_sp64,
1354         xor_not_<V64I:mode>_sp64) : Use arith_operand predicate.
1355         (xordi3_sp64_dbl): Delete.
1356         (cmp_ccx_arith_op, cmp_ccx_arith_op_set, cmp_ccx_xor_not,
1357         cmp_ccx_xor_not_set, cmp_ccx_arith_op_not, cmp_ccx_arith_op_not_set,
1358         cmp_ccx_neg, cmp_ccx_set_neg, one_cmpl<V64I>2_sp64, cmp_ccx_not,
1359         cmp_ccx_set_not): Use arith_operand predicate.
1360         (ashrsi3_extend2, lshrsi3_extend2 et al.): Use small_int_operand.
1361         * config/sparc/predicates.md: New file.
1362
1363 2005-04-21  Kazu Hirata  <kazu@cs.umass.edu>
1364
1365         PR tree-optimization/14846
1366         * fold-const.c (fold_single_bit_test_into_sign_test): New,
1367         split out from ...
1368         (fold_single_bit_test): ... here.
1369         (fold_binary): Call fold_single_bit_test_into_sign_test
1370         instead of fold_single_bit_test.
1371
1372 2005-04-20  James E Wilson  <wilson@specifixinc.com>
1373
1374         PR c++/20805
1375         * dwarf2out.c (gen_variable_die): Don't emit a specification if this
1376         is another declaration.
1377
1378 2005-04-21  Hans-Peter Nilsson  <hp@axis.com>
1379
1380         * config/cris/predicates.md: New file.
1381         * config/cris/cris-protos.h (cris_store_multiple_op_p)
1382         (cris_movem_load_rest_p): Declare.
1383         * config/cris/cris.c (cris_store_multiple_op): Return bool, not int.
1384         (cris_movem_load_rest_p): Ditto.  Globalize.
1385         (cris_bdap_operand, cris_bdap_biap_operand,
1386         cris_orthogonal_operator, cris_commutative_orth_op,
1387         cris_operand_extend_operator,
1388         cris_additive_operand_extend_operator, cris_extend_operator,
1389         cris_plus_or_bound_operator, cris_mem_op,
1390         cris_general_operand_or_symbol,
1391         cris_general_operand_or_gotless_symbol,
1392         cris_general_operand_or_plt_symbol, cris_mem_call_operand,
1393         cris_load_multiple_op): Remove predicate functions.
1394         (cris_symbol, cris_gotless_symbol) <case UNSPEC>: Return 0, don't
1395         abort, for UNSPECs other than CRIS_UNSPEC_PLT.
1396         * config/cris/cris.h (PREDICATE_CODES): Don't define.
1397         * config/cris/cris.md: Include predicates.md.
1398         ("call", "call_value"): Generate CONSTs of Pmode, not VOIDmode.
1399
1400 2005-04-20  Ian Lance Taylor  <ian@airs.com>
1401
1402         * c-common.def: Remove STMT_EXPR (moved to cp/cp-tree.def).
1403         * c-common.h (STMT_EXPR_STMT): Don't define.
1404         (STMT_EXPR_NO_SCOPE): Don't define.
1405         * c-dump.c (c_dump_tree): Don't handle STMT_EXPR.
1406         * c-pretty-print.c (pp_c_primary_expression): Likewise.
1407         (pp_c_expression): Likewise.
1408
1409 2005-04-20  Richard Henderson  <rth@redhat.com>
1410
1411         PR target/21100
1412         * config/i386/mmx.md (push<MMXMODE>1): Fix predicate thinko.
1413
1414 2005-04-20  Jeff Law  <law@redhat.com>
1415
1416         * reload1.c (reload): Ignore equivalences between pseudos and
1417         read only memory.
1418
1419 2005-04-20  Joseph S. Myers  <joseph@codesourcery.com>
1420
1421         PR c/12913
1422         * c-tree.h (struct c_label_list): Update comment.
1423         (struct c_label_context): Rename to struct c_label_context_se.
1424         (label_context_stack): Rename to label_context_stack_se.
1425         (C_DECL_UNJUMPABLE_VM, C_DECL_UNDEFINABLE_VM, struct
1426         c_label_context_vm, label_context_stack_vm, c_begin_vm_scope,
1427         c_end_vm_scope): New.
1428         (C_DECL_DECLARED_BUILTIN, C_DECL_USED): Use FUNCTION_DECL_CHECK.
1429         * c-decl.c (pop_scope): Call c_end_vm_scope.
1430         (pushdecl): Call c_begin_vm_scope for variably modified
1431         declarations.
1432         (define_label): Check for jumping into scope of identifier with
1433         variably modified type.  Push label on stack for those defined at
1434         current context of identifiers with variably modified type.
1435         (start_function): Create stack level for context of identifiers
1436         with variably modified type.
1437         (finish_function): Pop stack level for context of identifiers with
1438         variably modified type.
1439         * c-typeck.c (label_context_stack): Rename to
1440         label_context_stack_se.
1441         (label_context_stack_vm, c_begin_vm_scope, c_end_vm_scope): New.
1442         (c_finish_goto_label): Check for jumping into scope of identifier
1443         with variably modified type.  Push label on stack for those jumped
1444         to from current context of identifiers with variably modified
1445         type.
1446         (struct c_switch): Add blocked_vm.
1447         (c_start_case): Initialize blocked_vm.
1448         (do_case): Check blocked_vm.
1449         (c_finish_case): Add comment.
1450         (c_begin_stmt_expr, c_finish_stmt_expr): Update for renamed
1451         variable label_context_stack.
1452
1453 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1454
1455         * tree-ssa-phiopt.c (tree_ssa_phi_opt): Update calls to
1456         conditional_replacement, value_replacement, abs_replacement,
1457         minmax_replacement.
1458         (replace_phi_edge_with_variable): Remove argument BB.
1459         (conditional_replacement, value_replacement,
1460         minmax_replacement, abs_replacement): Remove argument PHI_BB.
1461         Update a call to replace_phi_edge_with_variable.
1462
1463         * tree-ssa-phiopt.c: Fix comments.
1464
1465 2005-04-20  Michael Matz  <matz@suse.de>
1466
1467         PR20973
1468         * reload.c (push_reload, find_dummy_reload): Check for uninitialized
1469         pseudos.
1470
1471 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1472
1473         * tree-ssa-phiopt.c: Fix comment typos.
1474
1475         PR tree-optimization/21116
1476         * tree-ssa-phiopt.c: Fix a typo.
1477
1478 2005-04-19  Richard Henderson  <rth@redhat.com>
1479
1480         * builtins.c (expand_builtin_sync_operation): Revert last change.
1481         * optabs.c (expand_bool_compare_and_swap): Compare vs old value,
1482         not vs new value.
1483         (expand_compare_and_swap_loop): Likewise.
1484         (expand_sync_operation): Remove fallback from NAND to AND; invert
1485         memory operand when expanding from cmpxchg.
1486         (expand_sync_fetch_operation): Likewise.
1487         * doc/extend.texi (Atomic Builtins): Fix docs for nand and
1488         compare-and-swap.
1489
1490         * config/alpha/alpha.c (alpha_split_atomic_op): Invert memory operand
1491         when implementing NAND.  Fix double-add for AFTER.
1492         * config/alpha/sync.md (sync_nand<I48MODE>): Invert memory operand.
1493         (sync_old_nand<I48MODE>, sync_new_nand<I48MODE>): Likewise.
1494         (sync_compare_and_swap<I48MODE>): Fix compare vs zero.  Return old
1495         memory value.
1496         (sync_lock_test_and_set<I48MODE>): Remove extra label and last
1497         memory barrier.
1498
1499         * config/i386/sync.md (sync_compare_and_swap<IMODE>): Fix pattern
1500         to return old memory value.
1501         (sync_compare_and_swap_cc<IMODE>): Likewise.
1502
1503         * config/ia64/ia64.c (ia64_dependencies_evaluation_hook): Early
1504         return pre-reload.  Don't consider output or anti dependencies.
1505         * config/ia64/sync.md (IMODE): New.
1506         (modesuffix): Add QI and HI.
1507         (memory_barrier): Simplify expansion.
1508         (sync_compare_and_swap<IMODE>): Use IMODE, not I48MODE.
1509         (cmpxchg_acq_<IMODE>): Likewise.
1510         (sync_lock_test_and_set<IMODE>): Likewise.
1511         (sync_lock_release<IMODE>): Likewise.
1512
1513 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1514
1515         * fold-const.c (fold_binary): Fold ~(X ^ Y) to ~X ^ Y or X ^ ~Y if
1516         ~X or ~Y simplify.
1517
1518 2005-04-19  James A. Morrison  <phython@gcc.gnu.org>
1519
1520         * fold-const (fold_binary):  Fold ~X ^ ~ Y to X ^ Y.
1521
1522 2005-04-20  Michael Pogue  <michael.pogue@sun.com>
1523             Joseph S. Myers  <joseph@codesourcery.com>
1524
1525         * c.opt (Wint-to-pointer-cast, Wpointer-to-int-cast): New options.
1526         * c-typeck.c (build_c_cast): Check these options.
1527         * doc/invoke.texi: Document these options.
1528
1529 2005-04-20  Kazu Hirata  <kazu@cs.umass.edu>
1530
1531         * tree-ssa-phiopt.c: Update a comment about the pass.
1532
1533 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1534
1535         * tree-ssa-phiopt.c, config/arm/arm.c, config/fr30/fr30.md,
1536         config/mcore/mcore.c: Fix comment typos.
1537
1538 2005-04-19  Daniel Jacobowitz  <dan@codesourcery.com>
1539
1540         * Makefile.in (libgcc.mk): Pass GCC_FOR_TARGET.
1541         * mklibgcc.in: Use $GCC_FOR_TARGET instead of ./xgcc.
1542
1543 2005-04-19  Paul Brook  <paul@codesourcery.com>
1544
1545         * config/arm/arm.c (arm_init_libfuncs): Clear mod optabs. 
1546
1547 2005-04-19  Andrew Haley  <aph@redhat.com>
1548
1549         PR java/21022
1550         * dbxout.c (dbxout_type_fields): Check DECL_IGNORED_P before
1551         looking at a field's bitpos.
1552
1553 2005-04-19  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
1554
1555         * system.h (fopen, fdopen, freopen): Define these to the unlocked
1556         libiberty functions.
1557
1558 2005-04-19  Kazu Hirata  <kazu@cs.umass.edu>
1559
1560         PR tree-optimization/21096
1561         * tree-ssa-copy.c (fini_copy_prop): Free cached_last_copy_of.
1562
1563 2005-04-19  Alan Modra  <amodra@bigpond.net.au>
1564
1565         PR target/21098
1566         * config/rs6000/rs6000.c (rs6000_elf_end_indicate_exec_stack): New.
1567         * config/rs6000/linux64.h (TARGET_ASM_FILE_END): Use the above.
1568
1569 2005-04-19  Alexandre Oliva  <aoliva@redhat.com>
1570
1571         * tree-cfg.c (dump_function_to_file): Use cfun info only if it
1572         refers to the function being dumped.
1573
1574 2005-04-18  Daniel Jacobowitz  <dan@codesourcery.com>
1575
1576         * varasm.c (assemble_start_function): Remove reset of in_section.
1577
1578 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1579
1580         PR tree-optimization/21085
1581         * fold-const (fold_binary): Don't change X % -C to X % C if C has
1582         overflowed.
1583
1584 2005-04-19  Ben Elliston  <bje@au.ibm.com>
1585
1586         * doc/invoke.texi (Optimize Options): Refer to the correct
1587         optimisation flag -ftree-dominator-opts, not -ftree-dom.
1588
1589 2005-04-18  Christopher Jaillet <christophe.jaillet@wanadoo.fr>
1590
1591         * config/rs6000/rs6000.c (machopic_output_stub):  Increase
1592         alloca argument to be big enough.
1593
1594 2005-04-18  Alexandre Oliva  <aoliva@redhat.com>
1595
1596         PR middle-end/21049
1597         * tree-cfg.c (dump_function_to_file): Do not crash if cfun or
1598         cfun->cfg are NULL.
1599
1600 2005-04-18  Tom Tromey  <tromey@redhat.com>
1601
1602         * cgraphunit.c (cgraph_finalize_compilation_unit): Fix a comment
1603         typo.
1604
1605 2005-04-18  Richard Henderson  <rth@redhat.com>
1606
1607         * config/alpha/alpha.c (alpha_split_atomic_op): New.
1608         (alphaev5_insn_pipe): Add LD_L, ST_C, MB types.
1609         (alphaev4_insn_pipe): Likewise.  Correct IST and LDSYM pipes.
1610         * config/alpha/alpha-protos.h: Update.
1611         * config/alpha/alpha.md (UNSPECV_MB, UNSPECV_LL, UNSPECV_SC): New.
1612         (UNSPECV_ATOMIC, UNSPECV_CMPXCHG, UNSPECV_XCHG): New.
1613         (attr type): Add ld_l, st_c, mb.
1614         (andsi_internal, andnotsi3, iorsi_internal, one_cmplsi_internal,
1615         iornotsi3, xorsi_internal, xornotsi3): New.
1616         * config/alpha/ev4.md (ev4_ld): Add ld_l.
1617         (ev4_ist_c, ev4_mb): New.
1618         * config/alpha/ev5.md (ev5_st): Add st_c, mb.
1619         (ev5_ld_l): New.
1620         * config/alpha/ev6.md (ev6_ild): Add ld_l.
1621         (ev6_ist): Add st_c.
1622         (ev6_mb): New.
1623         * config/alpha/sync.md: New file.
1624
1625 2005-04-18  Richard Henderson  <rth@redhat.com>
1626
1627         * builtins.c (expand_builtin_sync_operation): Fold nand to and
1628         for constants.
1629
1630         * optabs.c (expand_sync_operation): Fix typo expanding nand to and.
1631
1632 2005-04-18  Devang Patel  <dpatel@apple.com>
1633
1634         * config/rs6000/atlivec.md (mulv4si3): New pattern.
1635         
1636 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1637
1638         PR tree-optimization/20922
1639         * fold-const.c (fold_binary): Fold X - c > X and X + c < X to false.
1640         Fold X + c >= X and fold X - c <= X to true.
1641
1642 2005-04-18  James A. Morrison  <phython@gcc.gnu.org>
1643
1644         * config/ia64/unwind-ia64.c (emergency_reg_state_free): Make an
1645         unsigned int.
1646         (emergency_labeled_state_free): Likewise.
1647
1648 2005-04-18  Nick Clifton  <nickc@redhat.com>
1649
1650         * config/h8300/h8300.md (jump): Remove prescan parameter from
1651         calls to final_scan_insn.
1652
1653         * config/arc/arc.c (arc_output_function_epilogue): Remove prescan
1654         parameter from calls to final_scan_insn.
1655
1656         * config.gcc (m68hc12): Use the m68hc11.opt file for target
1657         specific options.
1658         (v850e, v850e1): Use the v850.opt file for target specific
1659         options.
1660
1661 2005-04-18  Kazu Hirata  <kazu@cs.umass.edu>
1662
1663         PR tree-optimization/21001
1664         * tree-optimize.c (init_tree_optimization_passes): Move the
1665         first pass_forwprop immediately before pass_vrp.
1666
1667 2005-04-17  Ian Lance Taylor  <ian@airs.com>
1668
1669         * c-common.def (SIZEOF_EXPR, ARROW_EXPR, ALIGNOF_EXPR): Remove.
1670         * c-common.c (c_sizeof_or_alignof_type): Change second parameter
1671         from enum tree_code op to bool is_sizeof.
1672         * c-common.h (c_sizeof_or_alignof_type): Update declaration.
1673         (c_sizeof, c_alignof): Update calls to c_sizeof_or_alignof_type.
1674         * c-pretty-print.c (pp_c_postfix_expression): Remove ARROW_EXPR
1675         case.
1676         (pp_c_unary_expression): Remove SIZEOF_EXPR and ALIGNOF_EXPR
1677         cases.
1678         (pp_c_expression): Remove ARROW_EXPR, SIZEOF_EXPR, and
1679         ALIGNOF_EXPR cases.
1680
1681 2005-04-17  Ian Lance Taylor  <ian@airs.com>
1682
1683         * system.h: Poison DONT_ACCESS_GBLS_AFTER_EPILOGUE.
1684
1685 2005-04-17  Richard Henderson  <rth@redhat.com>
1686
1687         * config/alpha/alpha.c (va_list_skip_additions): Only define if
1688         TARGET_ABI_OSF.
1689         (TARGET_STDARG_OPTIMIZE_HOOK): Likewise.
1690         (alpha_stdarg_optimize_hook): Likewise.  Allow for one more round
1691         of indirection through ssa names while looking for the gpr counter
1692         field.
1693         (alpha_setup_incoming_varargs) <TARGET_ABI_OSF>: Make use of the
1694         saved va_list_gpr_size and va_list_fpr_size.
1695
1696 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1697
1698         * tree-vrp.c (compare_values): Check that VAL1 and VAL2 are
1699         both pointers or both integers.
1700
1701         * tree-vrp.c (maybe_add_assert_expr): Don't assert
1702         ASSERT_EXPRs for single-use variable.
1703
1704         * tree-into-ssa.c: Fix a comment typo.
1705
1706 2005-04-17  Richard Sandiford  <rsandifo@redhat.com>
1707
1708         * config/mips/iris6.h (DRIVER_SELF_SPECS): Check -march as well as
1709         -mipsN before forcing a default of -mips2.
1710
1711 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1712
1713         * predict.h (IS_TAKEN): Remove.
1714         * rtl.h (NOTE_PREDICTION): Likewise.
1715
1716         * modulo-sched.c (CFG_HOOKS): Remove.
1717
1718         * c-parser.c (N_C_TTYPES): Remove.
1719
1720         * tree-flow-inline.h (get_stmt_operands): Remove.
1721         * lambda-code.c, tree-ssa-loop-unswitch.c,
1722         tree-ssa-operands.c, tree-ssa-pre.c, tree-ssa-propagate.c,
1723         tree-ssa-sink.c, tree-ssa.c, tree-tailcall.c,
1724         tree-vect-transform.c, tree-vectorizer.c, tree-vrp.c): Remove
1725         calls to get_stmt_operands.
1726         * doc/tree-ssa.texi: Don't mention get_stmt_operands.
1727
1728 2005-04-17  Richard Henderson  <rth@redhat.com>
1729
1730         PR target/20375
1731         * config/alpha/alpha.c (alpha_setup_incoming_varargs): Advance a copy
1732         of CUMULATIVE_ARGS past the last named argument.
1733         (alpha_va_start): Expect pretend_args_size only if strictly less than
1734         6 named arguments.
1735
1736 2005-04-17  Kazu Hirata  <kazu@cs.umass.edu>
1737
1738         PR middle-end/21024
1739         * builtins.c (expand_builtin_strcat): Convert the result of
1740         strlen to the right type.
1741         * fold-const.c (fold_binary) <PLUS_EXPR>: Use fold_convert to
1742         avoid creating type mismatches.
1743         <GE_EXPR>: Pass op0 and op1 to fold_build2 to avoid creating
1744         type mismatches.
1745
1746         * c-lex.c (WCHAR_TYPE_SIZE, WCHAR_BYTES): Remove.
1747
1748 2005-04-16  Richard Henderson  <rth@redhat.com>
1749
1750         PR target/21051
1751         * builtins.c (expand_builtin) <BUILT_IN_BOOL_COMPARE_AND_SWAP_*>:
1752         Use the mode of boolean_type_node when the user doesn't provide one.
1753         * config/ia64/sync.md (sync_lock_release<I48MODE>): Use operand 1.
1754
1755 2005-04-16  Alexandre Oliva  <aoliva@redhat.com>
1756
1757         PR target/20126
1758         * loop.c (loop_givs_rescan): Handle non-replaceable (plus (reg)
1759         (const)).
1760
1761         * tree-scalar-evolution.c (interpret_rhs_modify_expr): Fix typo in
1762         comment.
1763
1764 2005-04-16  Roger Sayle  <roger@eyesopen.com>
1765             Steven Bosscher  <stevenb@suse.de>
1766
1767         * fold-const.c (fold_binary_to_constant): Delete obsolete comment.
1768         (fold_unary_to_constant): Likewise.
1769
1770 2005-04-16  Kazu Hirata  <kazu@cs.umass.edu>
1771
1772         * basic-block.h: Adjust the value of PROP_SCAN_DEAD_STORES,
1773         PROP_ASM_SCAN.
1774
1775 2005-04-16  Gerald Pfeifer  <gerald@pfeifer.com>
1776
1777         * doc/install.texi (Specific): Avoid using asterisks in @anchor
1778         names related to target triplets.
1779         Remove i?86-*-esix from platform directory.
1780         Remove powerpc-*-eabiaix from platform directory.
1781
1782 2005-04-16  Joseph S. Myers  <joseph@codesourcery.com>
1783
1784         PR middle-end/20491
1785         * config/ia64/ia64.c (rtx_needs_barrier): Recurse instead of
1786         falling through from SUBREG case to REG.
1787
1788 2005-04-15  Roger Sayle  <roger@eyesopen.com>
1789
1790         * fold-const.c (fold_relational_hi_lo): Delete function and prototype.
1791         (fold_binary): Update comment mentioning fold_relational_hi_lo.
1792         (fold_binary_to_constant): Simplify using fold_binary.
1793         (fold_unary_to_constant): Likewise, simplify using fold_unary.
1794
1795 2005-04-15  Rainer Orth  <ro@TechFak.Uni-Bielefeld.DE>
1796
1797         * gthr-posix.c (pthread_cancel): Define.
1798         (pthread_mutexattr_init): Likewise.
1799         (pthread_mutexattr_settype): Likewise.
1800         (pthread_mutexattr_destroy): Likewise.
1801
1802 2005-04-15  David S. Miller  <davem@davemloft.net>
1803
1804         PR target/20673
1805         * config/sparc/sparc.h (sparc_hard_reg_printed): Mark as GTY(()).
1806
1807 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1808
1809         PR tree-optimization/21031
1810         * tree-ssa-forwprop.c (ssa_name_defined_by_comparison_p): New.
1811         (forward_propagate_into_cond_1): Call it.  Forward propagate
1812         integer-integer casts into COND_EXPRs.
1813
1814 2005-04-15  Dave Korn  <dave.korn@artimi.com>
1815
1816         * gcc.c (default_compilers): Clarify obscure error message when
1817         reading from standard input.
1818
1819 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1820
1821         * basic-block.h (PROP_EQUAL_NOTES): Remove.
1822         * flow.c (propagate_one_insn): Don't use PROP_EQUAL_NOTES.
1823
1824         * tree-ssa-alias.c (init_alias_info): Remove a call to
1825         get_stmt_operands.
1826
1827 2005-04-15  Andrew MacLeod  <amacleod@redhat.com>
1828
1829         * tree-vect-analyze.c (vect_stmt_relevant_p): Process immediate uses
1830         of non-virtual PHI nodes like we use to.
1831
1832 2005-05-15  Paolo Bonzini  <bonzini@gnu.org>
1833
1834         * genattrtab.c (ATTR_EQ_ATTR_P): Remove.
1835         (attr_copy_rtx): Do not use it.
1836
1837 2005-04-15  Andrew Macleod  <amacleod@redhat.com>
1838
1839         * doc/tree-ssa.texi: Grammer/abbreviation updates.
1840
1841 2005-04-15  Diego Novillo  <dnovillo@redhat.com>
1842
1843         * tree-vect-transform.c (vectorizable_store): Mark necessary
1844         objects in the vectorized store needing renaming.  Update the
1845         SSA graph for V_MAY_DEF operands in the original store.
1846
1847 2005-04-14  Daniel Berlin <dberlin@dberlin.org>
1848
1849         * tree-ssa-pre.c (compute_avail): It's okay to have
1850         TREE_INVARIANT's here, and value number the resulting expressions.
1851         (create_expression_by_pieces): Make sure operands that were
1852         min_invariant when we started, stay that way.
1853
1854 2005-04-15  David Edelsohn  <edelsohn@gnu.org>
1855
1856         * doc/install.texi (*-ibm-aix*): Add comment about system limits.
1857
1858 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1859
1860         PR tree-optimization/20936.
1861         * tree-ssa-ccp.c (visit_assignment): Fix a typo.
1862
1863 2005-04-15  Volker Reichelt  <reichelt@igpm.rwth-aachen.de>
1864
1865         * doc/invoke.texi: Fix typos.
1866         * doc/md.texi: Likewise.
1867         * doc/rtl.texi: Likewise.
1868         * doc/sourcebuild.texi: Likewise.
1869         * doc/tm.texi: Likewise.
1870
1871 2005-04-15  Uros Bizjak  <uros@kss-loka.si>
1872
1873         PR tree-optimization/21004
1874         * convert.c (convert_to_integer): Convert ceilf, ceill, floorf
1875         and floorl in c99 mode only.
1876         * builtins.c (expand_builtin_int_roundingfn): Assert that
1877         fallback_fndecl is not NULL_TREE.
1878
1879 2005-04-15  Kazu Hirata  <kazu@cs.umass.edu>
1880
1881         * cfgrtl.c (purge_all_dead_edge): Remove an unused argument.
1882         * basic-block.h: Update the prototype for
1883         purge_all_dead_edges.
1884         * cfgexpand.c (tree_expand_cfg): Update a call to
1885         purge_all_dead_edges.
1886         * combine.c (combine_instructions): Likewise.
1887         * passes.c (rest_of_handle_old_regalloc, rest_of_handle_cse,
1888         rest_of_handle_cse2, rest_of_handle_gcse,
1889         rest_of_handle_postreload): likewise.
1890
1891 2005-04-15  Alexandre Oliva  <aoliva@redhat.com>
1892
1893         PR middle-end/20739
1894         * gimplify.c (gimplify_addr_expr): Compensate for removal of
1895         e.g. cv-qualification conversions.
1896
1897 2005-04-14  Mike Stump  <mrs@apple.com>
1898
1899         * config/darwin-c.c (framework_construct_pathname): We must
1900         find all headers of a framework in the first instance of it
1901         found in the seach path.
1902
1903 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
1904
1905         PR tree-optimization/21021
1906         * tree-vrp.c (compare_values): Work around a bug in the front
1907         end that produces a comparison of mismatched types.
1908
1909 2004-04-14  Richard Henderson  <rth@redhat.com>
1910
1911         * config/ia64/ia64.h (enum fetchop_code): Remove.
1912         (enum ia64_builtins): Move ...
1913         * config/ia64/ia64.c (enum ia64_builtins): ... here.  Remove all
1914         members except BSP and FLUSHRS.
1915         (ia64_init_builtins): Remove __sync builtins.
1916         (ia64_expand_builtin): Likewise.
1917         (ia64_expand_fetch_and_op, ia64_expand_op_and_fetch): Remove.
1918         (ia64_expand_compare_and_swap, ia64_expand_lock_test_and_set): Remove.
1919         (ia64_expand_lock_release): Remove.
1920         * config/ia64/ia64.md (mf): Move to sync.md.
1921         (mf_internal, fetchadd_acq_si, fetchadd_acq_di, cmpxchg_acq_si,
1922         cmpxchg_acq_di, xchgsi, xchgdi): Likewise.
1923         * config/ia64/sync.md: New file.
1924         (memory_barrier): Rename from mf.
1925         (fetchadd_acq_<I48MODE>): Macroize from _si/_di patterns.
1926         (cmpxchg_acq_<I48MODE>): Likewise.
1927         (sync_lock_test_and_set<I48MODE>): Likewise.
1928
1929         * config/ia64/ia64intrin.h: Define nothing for C; limit #defines
1930         to c++.  Remove __sync* declarations.  s/_si/_4/.  s/_di/_8/.
1931
1932 2004-04-14  Richard Henderson  <rth@redhat.com>
1933
1934         * config/i386/i386.c (x86_cmpxchg, x86_xadd): New.
1935         (ix86_compare_emitted): New.
1936         (ix86_expand_compare): Use ix86_compare_emitted if set.
1937         (ix86_expand_setcc): Only emit REG_EQUAL if both ix86_compare_op0
1938         and ix86_compare_op0 are set.
1939         * config/i386/i386.h (x86_cmpxchg, x86_xadd): Declare.
1940         (TARGET_CMPXCHG, TARGET_XADD): New.
1941         (ix86_compare_emitted): Declare.
1942         * config/i386/i386.md: Include sync.md
1943         (UNSPECV_CMPXCHG_1, UNSPECV_CMPXCHG_2): New.
1944         (UNSPECV_XCHG, UNSPECV_LOCK): New.
1945         * config/i386/sync.md: New file.
1946
1947 2004-04-14  Richard Henderson  <rth@redhat.com>
1948
1949         PR middle-end/14311
1950         * builtin-types.def (BT_BOOL, BT_VOLATILE_PTR, BT_I1, BT_I2,
1951         BT_I4, BT_I8, BT_FN_VOID_VPTR, BT_FN_I1_VPTR_I1, BT_FN_I2_VPTR_I2,
1952         BT_FN_I4_VPTR_I4, BT_FN_I8_VPTR_I8, BT_FN_BOOL_VPTR_I1_I1,
1953         BT_FN_BOOL_VPTR_I2_I2, BT_FN_BOOL_VPTR_I4_I4, BT_FN_BOOL_VPTR_I8_I8,
1954         BT_FN_I1_VPTR_I1_I1, BT_FN_I2_VPTR_I2_I2, BT_FN_I4_VPTR_I4_I4,
1955         BT_FN_I8_VPTR_I8_I8): New.
1956         * builtins.def (DEF_SYNC_BUILTIN): New.
1957         (BUILT_IN_FETCH_AND_ADD_N, BUILT_IN_FETCH_AND_ADD_1,
1958         BUILT_IN_FETCH_AND_ADD_2, BUILT_IN_FETCH_AND_ADD_4,
1959         BUILT_IN_FETCH_AND_ADD_8, BUILT_IN_FETCH_AND_SUB_N,
1960         BUILT_IN_FETCH_AND_SUB_1, BUILT_IN_FETCH_AND_SUB_2,
1961         BUILT_IN_FETCH_AND_SUB_4, BUILT_IN_FETCH_AND_SUB_8,
1962         BUILT_IN_FETCH_AND_OR_N, BUILT_IN_FETCH_AND_OR_1,
1963         BUILT_IN_FETCH_AND_OR_2, BUILT_IN_FETCH_AND_OR_4,
1964         BUILT_IN_FETCH_AND_OR_8, BUILT_IN_FETCH_AND_AND_N,
1965         BUILT_IN_FETCH_AND_AND_1, BUILT_IN_FETCH_AND_AND_2,
1966         BUILT_IN_FETCH_AND_AND_4, BUILT_IN_FETCH_AND_AND_8,
1967         BUILT_IN_FETCH_AND_XOR_N, BUILT_IN_FETCH_AND_XOR_1,
1968         BUILT_IN_FETCH_AND_XOR_2, BUILT_IN_FETCH_AND_XOR_4,
1969         BUILT_IN_FETCH_AND_XOR_8, BUILT_IN_FETCH_AND_NAND_N,
1970         BUILT_IN_FETCH_AND_NAND_1, BUILT_IN_FETCH_AND_NAND_2,
1971         BUILT_IN_FETCH_AND_NAND_4, BUILT_IN_FETCH_AND_NAND_8,
1972         BUILT_IN_ADD_AND_FETCH_N, BUILT_IN_ADD_AND_FETCH_1,
1973         BUILT_IN_ADD_AND_FETCH_2, BUILT_IN_ADD_AND_FETCH_4,
1974         BUILT_IN_ADD_AND_FETCH_8, BUILT_IN_SUB_AND_FETCH_N,
1975         BUILT_IN_SUB_AND_FETCH_1, BUILT_IN_SUB_AND_FETCH_2,
1976         BUILT_IN_SUB_AND_FETCH_4, BUILT_IN_SUB_AND_FETCH_8,
1977         BUILT_IN_OR_AND_FETCH_N, BUILT_IN_OR_AND_FETCH_1,
1978         BUILT_IN_OR_AND_FETCH_2, BUILT_IN_OR_AND_FETCH_4,
1979         BUILT_IN_OR_AND_FETCH_8, BUILT_IN_AND_AND_FETCH_N,
1980         BUILT_IN_AND_AND_FETCH_1, BUILT_IN_AND_AND_FETCH_2,
1981         BUILT_IN_AND_AND_FETCH_4, BUILT_IN_AND_AND_FETCH_8,
1982         BUILT_IN_XOR_AND_FETCH_N, BUILT_IN_XOR_AND_FETCH_1,
1983         BUILT_IN_XOR_AND_FETCH_2, BUILT_IN_XOR_AND_FETCH_4,
1984         BUILT_IN_XOR_AND_FETCH_8, BUILT_IN_NAND_AND_FETCH_N,
1985         BUILT_IN_NAND_AND_FETCH_1, BUILT_IN_NAND_AND_FETCH_2,
1986         BUILT_IN_NAND_AND_FETCH_4, BUILT_IN_NAND_AND_FETCH_8,
1987         BUILT_IN_BOOL_COMPARE_AND_SWAP_N, BUILT_IN_BOOL_COMPARE_AND_SWAP_1,
1988         BUILT_IN_BOOL_COMPARE_AND_SWAP_2, BUILT_IN_BOOL_COMPARE_AND_SWAP_4,
1989         BUILT_IN_BOOL_COMPARE_AND_SWAP_8, BUILT_IN_VAL_COMPARE_AND_SWAP_N,
1990         BUILT_IN_VAL_COMPARE_AND_SWAP_1, BUILT_IN_VAL_COMPARE_AND_SWAP_2,
1991         BUILT_IN_VAL_COMPARE_AND_SWAP_4, BUILT_IN_VAL_COMPARE_AND_SWAP_8,
1992         BUILT_IN_LOCK_TEST_AND_SET_N, BUILT_IN_LOCK_TEST_AND_SET_1,
1993         BUILT_IN_LOCK_TEST_AND_SET_2, BUILT_IN_LOCK_TEST_AND_SET_4,
1994         BUILT_IN_LOCK_TEST_AND_SET_8, BUILT_IN_LOCK_RELEASE_N,
1995         BUILT_IN_LOCK_RELEASE_1, BUILT_IN_LOCK_RELEASE_2,
1996         BUILT_IN_LOCK_RELEASE_4, BUILT_IN_LOCK_RELEASE_8,
1997         BUILT_IN_SYNCHRONIZE: New.
1998         * builtins.c (called_as_built_in): Rewrite from CALLED_AS_BUILT_IN
1999         as a function.  Accept __sync_ as a prefix as well.
2000         (expand_builtin_sync_operation, expand_builtin_compare_and_swap,
2001         expand_builtin_lock_test_and_set, expand_builtin_synchronize,
2002         expand_builtin_lock_release): New.
2003         (expand_builtin): Call them.
2004         * c-common.c (DEF_BUILTIN): Don't require __builtin_ prefix if
2005         neither BOTH_P nor FALLBACK_P are defined.
2006         (builtin_type_for_size): New.
2007         (sync_resolve_size, sync_resolve_params, sync_resolve_return): New.
2008         (resolve_overloaded_builtin): New.
2009         * c-common.h (resolve_overloaded_builtin): Declare.
2010         (builtin_type_for_size): Declare.
2011         * c-typeck.c (build_function_call): Invoke resolve_overloaded_builtin.
2012         * expr.c (sync_add_optab, sync_sub_optab, sync_ior_optab,
2013         sync_and_optab, sync_xor_optab, sync_nand_optab, sync_old_add_optab,
2014         sync_old_sub_optab, sync_old_ior_optab, sync_old_and_optab,
2015         sync_old_xor_optab, sync_old_nand_optab, sync_new_add_optab,
2016         sync_new_sub_optab, sync_new_ior_optab, sync_new_and_optab,
2017         sync_new_xor_optab, sync_new_nand_optab, sync_compare_and_swap,
2018         sync_compare_and_swap_cc, sync_lock_test_and_set,
2019         sync_lock_release): New.
2020         * optabs.h: Declare them.
2021         * expr.h (expand_val_compare_and_swap, expand_bool_compare_and_swap,
2022         expand_sync_operation, expand_sync_fetch_operation,
2023         expand_sync_lock_test_and_set): Declare.
2024         * genopinit.c (optabs): Add sync optabs.
2025         * optabs.c (init_optabs): Initialize sync optabs.
2026         (expand_val_compare_and_swap_1, expand_val_compare_and_swap,
2027         expand_bool_compare_and_swap, expand_compare_and_swap_loop,
2028         expand_sync_operation, expand_sync_fetch_operation,
2029         expand_sync_lock_test_and_set): New.
2030         * doc/extend.texi (Atomic Builtins): New section
2031         * doc/md.texi (Standard Names): Add sync patterns.
2032
2033 2005-04-14  Alexandre Oliva  <aoliva@redhat.com>
2034
2035         * tree-eh.c (lower_try_finally_copy): Generate new code in
2036         response to goto_queue entries as if the queue was sorted by
2037         index, not pointers.
2038         (lower_try_finally_switch): Likewise.
2039
2040 2005-04-14  Richard Henderson  <rth@redhat.com>
2041
2042         * config/i386/i386.c (ix86_expand_sse_cmp): Split out from ...
2043         (ix86_expand_sse_movcc): ... here.  Take cmp as a pre-computed
2044         register.
2045         (ix86_expand_fp_movcc): Update to match.
2046         (ix86_expand_fp_vcond, ix86_expand_int_vcond): New.
2047         * config/i386/i386-protos.h: Update.
2048         * config/i386/sse.md (vcondv4sf, vcondv2df): New.
2049         (vcond<SSEMODE124>, vcondu<SSEMODE12>): New.
2050
2051 2005-04-14  Joseph S. Myers  <joseph@codesourcery.com>
2052
2053         * doc/cpp.texi, doc/install.texi: Change references to GCC 3.5 to
2054         refer to 4.0.
2055
2056 2005-04-14  Julian Brown  <julian@codesourcery.com>
2057
2058         * Revert elfos.h part of my patch from 2005-04-13 for causing libstdc++
2059         link failures on ppc64 Linux.
2060
2061 2005-04-14  Andreas Krebbel  <krebbel1@de.ibm.com>
2062
2063         * config.gcc: Set cpu_type for s390.
2064
2065 2005-04-14  Daniel Berlin  <dberlin@dberlin.org>
2066
2067         Fix PR tree-optimization/20963
2068         * tree-ssa-pre.c (compute_avail): Remove special case for
2069         TREE_INVARIANT.
2070         (create_expression_by_pieces): Add value numbers for forced out
2071         statements.
2072
2073 2005-04-14  Hans-Peter Nilsson  <hp@axis.com>
2074
2075         * config/cris/cris.md: Replace references to (reg:SI 16) with
2076         (reg:SI CRIS_SRP_REGNUM).
2077
2078 2005-04-14  Kazu Hirata  <kazu@cs.umass.edu>
2079
2080         PR tree-optimization/20657
2081         * tree-vrp.c (extract_range_from_expr): Notice INTEGER_CST to
2082         create an appropriate range from it.
2083
2084 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2085
2086         * reg-stack.c (subst_stack_regs_pat): Handle <UNSPEC_FIST_FLOOR> and
2087         <UNSPEC_FIST_CEIL> case.
2088
2089         * config/i386/i386.md (UNSPEC_FIST_FLOOR, UNSPEC_FIST_CEIL): New.
2090         (*fist<mode>2_floor_1, fistdi2_floor, fistdi2_floor_with_temp)
2091         (fist<mode>2_floor, fist<mode>2_floor_with_temp): New isns patterns
2092         to implement lfloor and llfloor built-ins as x87 intrinsic function.
2093         (fistdi2_floor, fist<mode>2_floor splitters): New splitters.
2094         (lfloor<mode>2): New expanders.
2095         (*fist<mode>2_ceil_1, fistdi2_ceil, fistdi2_ceil_with_temp)
2096         (fist<mode>2_ceil, fist<mode>2_ceil_with_temp): New isns patterns
2097         to implement lceil and llceil built-ins as x87 intrinsic function.
2098         (fistdi2_ceil, fist<mode>2_ceil splitters): New splitters.
2099         (lceil<mode>2): New expanders.
2100
2101 2005-04-14  Uros Bizjak  <uros@kss-loka.si>
2102
2103         * convert.c (convert_to_integer): Convert (long int)trunc{,f,l},
2104         and (long long int)ceil{,f,l} into FIX_TRUNC_EXPR.
2105
2106 2005-04-14  Ulrich Weigand  <uweigand@de.ibm.com>
2107
2108         PR target/20927
2109         * config/s390/s390-modes.def: Define TFmode.
2110
2111 2005-04-13  Richard Sandiford  <rsandifo@redhat.com>
2112
2113         * config/mips/mips.h (ASM_OUTPUT_CASE_LABEL): Delete.
2114         (JUMP_TABLES_IN_TEXT_SECTION): Define.
2115         * config/mips/mips.c (mips16_insn_length): Remove reference to
2116         JUMP_TABLES_IN_TEXT_SECTION.
2117
2118 2005-04-13 Fariborz Jahanian <fjahanian@apple.com>
2119
2120         * simplify-rtx.c (simplify_binary_operation_1): Return
2121         scalar or vector of constant 0, depending on the xor's
2122         mode.
2123
2124 2005-04-13  Dale Johannesen  <dalej@apple.com>
2125
2126         * objc/Make-lang.in (objc-lang.o):  Depend on tree-gimple.h.
2127         (objc-act.o):  Ditto.
2128         * objc/objc-act.c (objc_gimplify_expr):  New.
2129         (objc_get_callee_fndecl):  New.
2130         * objc/objc-act.h:  Include tree-gimple.h.  Declare new functions.
2131         * objc/objc-lang.c (LANG_HOOKS_GIMPLIFY_EXPR):  Define.
2132         (LANG_HOOKS_GET_CALLEE_FNDECL):  Define.
2133
2134 2005-04-13  Devang Patel  <dpatel@apple.com>
2135
2136         * tree-if-conv.c (tree_if_convert_cond_expr): Do not create extra
2137         temp variables.
2138
2139 2005-04-13  Hans-Peter Nilsson  <hp@axis.com>
2140
2141         CRIS prologue as RTL.
2142         * config/cris/cris-protos.h (cris_emit_movem_store)
2143         (cris_expand_prologue): Prototype.
2144         * config/cris/cris.c (struct machine_function): New member
2145         stdarg_regs.
2146         (cfa_label_num, cris_target_asm_function_prologue): Remove.
2147         (TARGET_ASM_FUNCTION_PROLOGUE): Don't override.
2148         (cris_general_operand_or_gotless_symbol): Accept CRIS_UNSPEC_GOT.
2149         (cris_load_multiple_op, cris_return_address_on_stack)
2150         (cris_return_address_on_stack_for_return): ISO-Cify.
2151         (cris_store_multiple_op): New predicate function.
2152         (cris_expand_prologue, cris_emit_movem_store): New functions.
2153         (cris_print_operand) <case 'O'>: Handle modifications other than
2154         post-increment.
2155         (cris_symbol, cris_got_symbol): Return 0 for CRIS_UNSPEC_GOT.
2156         (cris_gotless_symbol): Return 1 for CRIS_UNSPEC_GOT.
2157         (cris_gen_movem_load): Rearrange slightly to make local variable
2158         src a parameter, removing osrc.
2159         (cris_setup_incoming_varargs): Set machine_function member
2160         stdarg_regs to correspond to the number of registers that need to
2161         be saved.
2162         * config/cris/cris.h (EXTRA_CONSTRAINT_S): Accept
2163         CRIS_UNSPEC_GOT.
2164         (PREDICATE_CODES): Add cris_store_multiple_op.  Make
2165         cris_general_operand_or_gotless_symbol accept UNSPEC.
2166         * config/cris/cris.md (CRIS_UNSPEC_GOT): New constant.
2167         ("*movsi_internal") <alternative 8>: Handle CRIS_UNSPEC_GOT.
2168         ("*cris_store_multiple"): New pattern.  Tweak common comment above
2169         this and "*cris_load_multiple".
2170         ("prologue"): New define_expand.
2171
2172         * config/cris/cris.md ("epilogue"): Conditionalize on
2173         TARGET_PROLOGUE_EPILOGUE.
2174
2175 2005-04-13  Steve Ellcey  <sje@cup.hp.com>
2176
2177         PR target/20924
2178         * config/ia64/ia64.md (divsf3_internal_lat): Generate frcpa with
2179         fpsr 0 instead of fpsr 1.
2180         (divsf3_internal_thr): Ditto.
2181         (divdf3_internal_lat): Ditto.
2182         (divdf3_internal_thr): Ditto.
2183         (divxf3_internal_lat): Ditto.
2184         (divxf3_internal_thr): Ditto.
2185
2186 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2187
2188         PR tree-optimization/20913
2189         * tree-ssa-copy.c (copy_prop_visit_cond_stmt): Fold COND_EXPR.
2190
2191         PR tree-optimization/20702
2192         * tree-vrp.c (maybe_add_assert_expr): Recurse into
2193         dominator children that haven't been walked into.
2194
2195 2005-04-13  Julian Brown  <julian@codesourcery.com>
2196
2197         * config/elfos.h (MAKE_DECL_ONE_ONLY): Redefined to stop DECL_WEAK from
2198         being used for symbols with vague linkage when HAVE_GAS_COMDAT_GROUP
2199         is true.
2200
2201 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2202
2203         * basic-block.h, tree-ssa-uncprop.c, varasm.c,
2204         config/i386/sse.md: Fix comment typos.
2205
2206         * genattrtab.c (NULL_ATTR): Remove.
2207         * ifcvt.c (NULL_EDGE): Likewise.
2208
2209         * rtl.h (RTX_EXPR_FIRST, RTX_EXPR_LAST): Remove.
2210
2211         * rtl.h (NOTE_PREDICTION_ALG, NOTE_PREDICTION_FLAGS,
2212         NOTE_PREDICT): Remove.
2213
2214 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2215
2216         * configure.ac (gcc_AC_CHECK_DECLS): Add vsnprintf.
2217         * configure: Regenerate.
2218         * config.in: Likewise.
2219         * system.h: Declare vsnprintf if not already declared.
2220
2221 2005-04-13  Eric Botcazou  <ebotcazou@libertysurf.fr>
2222
2223         * optc-gen.awk: Handle stand-alone Mask records.
2224         * opth-gen.awk: Likewise.
2225         * doc/options.texi (Option file format): Document them.
2226         * config.gcc (sparc-*-netbsdelf*, sparc-*-linux*, sparc64-*-freebsd*,
2227         sparc64-*-linux*, sparc64-*-netbsd*): Add long-double-switch.opt.
2228         (sparc64-*-openbsd*, sparc64-*-elf*): Add little-endian.opt.
2229         * config/sparc/sparc.h (MASK_FPU, MASK_UNALIGNED_DOUBLES,
2230         MASK_V8, MASK_SPARCLITE, MASK_SPARCLET, MASK_V9,
2231         MASK_DEPRECATED_V8_INSNS, MASK_IMPURE_TEXT, MASK_APP_REGS,
2232         MASK_HARD_QUAD, MASK_LITTLE_ENDIAN, MASK_PTR64, MASK_64BIT,
2233         MASK_STACK_BIAS, MASK_FPU_SET, MASK_VIS, MASK_V8PLUS,
2234         MASK_FASTER_STRUCTS, MASK_LONG_DOUBLE_128): Delete.
2235         (TARGET_FPU, TARGET_UNALIGNED_DOUBLES, TARGET_V8, TARGET_SPARCLITE,
2236         TARGET_SPARCLET, TARGET_V9, TARGET_DEPRECATED_V8_INSNS,
2237         TARGET_IMPURE_TEXT, TARGET_APP_REGS, MASK_HARD_QUAD,
2238         TARGET_LITTLE_ENDIAN, TARGET_PTR64, TARGET_64BIT, MASK_STACK_BIAS,
2239         TARGET_FPU_SET, TARGET_VIS, TARGET_V8PLUS, TARGET_FASTER_STRUCTS,
2240         TARGET_LONG_DOUBLE_128): Likewise.
2241         (TARGET_SWITCHES, SUBTARGET_SWITCHES): Likewise.
2242         (TARGET_OPTIONS, SUBTARGET_OPTIONS): Likewise.
2243         * config/sparc/freebsd.h (SUBTARGET_SWITCHES): Likewise.
2244         * config/sparc/linux.h (SUBTARGET_SWITCHES): Likewise.
2245         * config/sparc/linux64.h (SUBTARGET_SWITCHES): Likewise.
2246         * config/sparc/netbsd-elf.h (SUBTARGET_SWITCHES): Likewise.
2247         * config/sparc/sp64-elf.h (SUBTARGET_SWITCHES): Likewise.
2248         * config/sparc/sparc.c (fpu_option_set): New global.
2249         (sparc_handle_option): New function.
2250         (sparc_override_options): Test fpu_option_set.
2251         (TARGET_DEFAULT_TARGET_FLAGS): Set to TARGET_DEFAULT.
2252         (TARGET_HANDLE_OPTION): Set to sparc_handle_option.
2253         * config/sparc/sparc.opt: New file.
2254         * config/sparc/little-endian.opt: Likewise.
2255         * config/sparc/long-double-switch.opt: Likewise.
2256
2257 2005-04-13  Bernd Schmidt  <bernd.schmidt@analog.com>
2258
2259         * config/bfin/bfin.c (bfin_lib_id_given): New static variable.
2260         (bfin_handle_options): Set it if -mshared-library-id= is seen.
2261         * config/bfin/bfin.opt (mshared-library-id=): Lose
2262         Var(bfin_lib_id_given).
2263
2264 2005-04-13  Matt Thomas  <matt@3am-software.com>
2265
2266         * config/rs6000/sysv4.h (NO_IMPLICIT_EXTERN_C): undefine before
2267         defining.
2268
2269 2005-04-13  Kazu Hirata  <kazu@cs.umass.edu>
2270
2271         * rtl.h (CLEAR_RTX_FLAGS): Remove.
2272
2273         * cgraphunit.c (INSNS_PER_CALL): Remove.
2274
2275         * tree-ssa-forwprop.c (vars,
2276         record_single_argument_cond_exprs,
2277         substitute_single_use_vars): Remove.
2278         (forward_propagate_into_cond_1, forward_propagate_into_cond):
2279         New.
2280         (tree_ssa_forward_propagate_single_use_vars): Call
2281         forward_propagate_into_cond for each COND_EXPR.
2282
2283         * tree-inline.c (INSNS_PER_STMT): Remove.
2284
2285 2005-04-12  Richard Henderson  <rth@redhat.com>
2286
2287         * config/i386/i386.c (ix86_prepare_sse_fp_compare_args): Split ...
2288         (ix86_expand_sse_fp_minmax): ... from ...
2289         (ix86_expand_fp_movcc): ... here.
2290         (ix86_expand_sse_movcc): Rewrite from ix86_split_sse_movcc.
2291         * config/i386/i386-protos.h: Update.
2292         * config/i386/i386.md (UNSPEC_IEEE_MIN, UNSPEC_IEEE_MAX): New.
2293         (sse_setccsf, sse_setccdf): Allow before reload.
2294         (movsfcc_1_sse_min, movsfcc_1_sse_max, movsfcc_1_sse): Remove.
2295         (movdfcc_1_sse_min, movdfcc_1_sse_max, movdfcc_1_sse): Remove.
2296         (ieee_sminsf3, ieee_smaxsf3, ieee_smindf3, ieee_smaxdf3): New.
2297         * config/i386/sse.md (andsf3, nandsf3, iorsf3, xorsf3): New.
2298         (anddf3, nanddf3, iordf3, xordf3): New.
2299
2300 2005-04-12  Jeff Law  <law@redhat.com>
2301
2302         * Makefile.in (OBJS-common): Add tree-ssa-uncprop.o.
2303         (tree-ssa-uncprop.o): Add dependencies.
2304         * tree-cfg.c (remove_useless_stmts_bb, remove_useless_stmts): Remove.
2305         * tree-flow.h (remove_useless_stmts): Remove prototype.
2306         * tree-outof-ssa.c (rewrite_out_of_ssa): Remove call to
2307         remove_useless_stmts.
2308         * timevar.def (TV_TREE_SSA_UNCPROP): New timevar.
2309         * tree-optimize.c (init_tree_optimization_passes): Add uncprop pass.
2310         * tree-pass.h (pass_uncprop): Declare.
2311         * tree-ssa-uncprop.c: New file.
2312
2313 2005-04-12  James E. Wilson  <wilson@specifixinc.com>
2314
2315         PR target/20670
2316         * unwind-ia64.c (uw_intall_context): Add missing load of r27.
2317
2318 2005-04-12  Caroline Tice  <ctice@apple.com>
2319
2320         Temporary fix for partitioning problems.
2321         * passes.c (rest_of_handle_final): Remove code that
2322         frees unlikely_text_section_name,
2323         * varasm.c (assemble_start_function): Test for partitioning
2324         flag before writing out section labels.
2325         (assemble_end_function): Test for partitioning flag before
2326         writing out section labels.
2327
2328 2005-04-12  Steven Bosscher  <stevenb@suse.de>
2329             Stuart Hastings <stuart@apple.com>
2330             Jan Hubicka  <jh@suse.cz>
2331
2332         * Makefile.in: Add function.h to BASIC_BLOCK_H.  Remove all
2333         references to gt-tree-cfg.h.
2334         * basic-block.h (struct basic_block_def): Don't skip rbi
2335         for garbage collection.
2336         (struct reorder_block_def): Make GTY-able.
2337         (struct control_flow_graph): New structure.
2338         (n_edges, n_basic_blocks, last_basic_block, basic_block_info,
2339         BASIC_BLOCK, EXIT_BLOCK_PTR, ENTRY_BLOCK_PTR): No longer vars,
2340         but instead defines to the control_flow_graph for cfun.
2341         (label_to_block_map): New define, points to the label map of
2342         the control_flow_graph for cfun.
2343         (n_edges_for_function, n_basic_blocks_for_function,
2344         last_basic_block_for_function, basic_block_info_for_function,
2345         EXIT_BLOCK_PTR_FOR_FUNCTION, ENTRY_BLOCK_PTR_FOR_FUNCTION,
2346         basic_block_info_for_function, label_to_block_map_for_function):
2347         Counterparts for the above, taking a struct function as an extra
2348         argument.
2349         (alloc_rbi_pool, free_rbi_pool): Remove prototypes.
2350         * cfg.c: (n_edges, n_basic_blocks, last_basic_block,
2351         basic_block_info, ENTRY_BLOCK_PTR, EXIT_BLOCK_PTR): Remove.
2352         (alloc_rbi_pool, free_rbi_pool): Remove.
2353         (initialize_bb_rbi): Use ggc_alloc_cleared instead of pool_alloc.
2354         * cfglayout.c: (cfg_layout_initialize): Don't allocate the rbi pool
2355         here...
2356         (cfg_layout_finalize) ... and don't free it here.
2357         * cfgrtl.c (cfg_layout_delete_block): Zero out rbi so it gets
2358         garbage collected.
2359         * flow.c (free_basic_block_vars): Set label_to_block_map and
2360         n_edges to zero too.
2361         * function.h (struct function): Add cfg field.
2362         * function.c (allocate_struct_function): Allocate the cfg.
2363         * tree-cfg.c (label_to_block_map): Remove.
2364         (build_tree_cfg): Don't allocate the rbi pool here...
2365         (delete_tree_cfg_annotations): ...and don't free it here.
2366         Also don't nullify label_to_block_map for cfun.
2367
2368 2005-04-12  Caroline Tice  <ctice@apple.com>
2369
2370         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2371         Revert my patch from April 9.
2372         (fix_edges_for_rarely_executed_code): Revert my patch from April 9.
2373         (reorder_basic_blocks): Revert my patch from April 9.
2374         (insert_section_boundary_note): Revert my patch from April 9.
2375         * dbxout.c (dbxout_function_end): Revert my patch from April 9.
2376         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): Revert my patch from April 9.
2377         (COLD_END_LABEL):  Revert my patch from April 9.
2378         (cold_text_section_label):  Revert my patch from April 9.
2379         (cold_end_label): Revert my patch from April 9.
2380         (dwarf2out_switch_text_section): Revert my patch from April 9.
2381         (output_aranges): Revert my patch from April 9.
2382         (output_ranges):  Revert my patch from April 9.
2383         (output_line_info): Revert my patch from April 9.
2384         (add_location_or_const_value_attribute):  Revert my patch from April 9.
2385         (dwarf2out_var_location): Revert my patch from April 9.
2386         (dwarf2out_init):  Revert my patch from April 9.
2387         (dwarf2out_finish): Revert my patch from April 9.
2388         * function.h (struct function): Revert my patch from April 9.
2389         * opts.c (decode_options): Revert my patch from April 9.
2390         * output.h (unlikely_section_label, hot_section_label,
2391         hot_section_end_label, cold_section_end_label,
2392         unlikely_text_section_name): Revert my patch from April 9.
2393         * passes.c (rest_of_handle_final): Revert my patch from April 9.
2394         * varasm.c (unlikely_section_label, hot_section_label,
2395         hot_section_end_label, cold_section_end_label,
2396         unlikely_text_section_name): Revert my patch from April 9.
2397         (initialize_cold_section_name): Revert my patch from April 9.
2398         (unlikely_text_section): Revert my patch from April 9.
2399         (in_unlikely_text_section): Revert my patch from April 9.
2400         (named_section): Revert my patch from April 9.
2401         (function_section): Revert my patch from April 9.
2402         (current_function_section): Revert my patch from April 9.
2403         (assemble_start_function): Revert my patch from April 9.
2404         (assemble_end_function): Revert my patch from April 9.
2405         (default_section_type_flags_1): Revert my patch from April 9.
2406
2407 2005-04-12  Eric Botcazou  <ebotcazou@libertysurf.fr>
2408
2409         * config/sparc/sparc.h (APPLY_RESULT_SIZE): Set to 24 in 64-bit mode.
2410         * config/sparc/sparc.md (untyped_call): Save the registers manually.
2411
2412         * config/sparc/sparc.c (legitimate_address_p): Use TARGET_ARCH32.
2413
2414 2005-04-12  Ulrich Weigand  <uweigand@de.ibm.com>
2415
2416         PR middle-end/20917
2417         * config/s390/s390.md ("*set_tp"): Use SET in pattern.
2418         ("set_tp_64", "set_tp_31"): Adapt expanded pattern.
2419
2420 2004-04-12  Richard Henderson  <rth@redhat.com>
2421
2422         * config/i386/i386.md (UNSPEC_FIX, UNSPEC_MOVA, UNSPEC_SHUFFLE,
2423         UNSPEC_PSHUFLW, UNSPEC_PSHUFHW, UNSPEC_ADDSUB, UNSPEC_HADD,
2424         UNSPEC_HSUB, UNSPEC_MOVSHDUP, UNSPEC_MOVSLDUP, UNSPEC_MOVDDUP): Remove.
2425         (UNSPEC_*, UNSPECV_*): Renumber.
2426
2427 2005-04-12  Frank Ch. Eigler  <fche@redhat.com>
2428
2429         PR mudflap/19266
2430         From Richard Henderson <rth@redhat.com>:
2431         * tree-mudflap.c (mf_build_check_statement_for): Correct block
2432         splitting logic.
2433
2434 2005-04-12  Dorit Naishlos  <dorit@il.ibm.com>
2435
2436         * tree-cfg.c (tree_verify_flow_info): Use LABEL_EXPR_LABEL.
2437
2438 2005-04-12  Bernd Schmidt  <bernd.schmidt@analog.com>
2439
2440         * config/bfin/bfin.c (bfin_library_id_string): Remove.
2441         (bfin_library_id): New variable.
2442         (bfin_expand_prologue): Use bfin_library_id and bfin_lib_id_given
2443         instead of bfin_library_id_string.
2444         (bfin_handle_option): New function.
2445         (override_options): Remove most code to deal with shared library IDs,
2446         just check they aren't used without -mid-shared-library.
2447         (TARGET_HANDLE_OPTION): Define.
2448         * config/bfin/bfin.h (TARGET_OPTIONS): Delete macro.
2449         * config/bfin/bfin.opt (mshared-library-id=): New.
2450
2451 2005-04-12  Kazu Hirata  <kazu@cs.umass.edu>
2452
2453         * tree-vect-transform.c: Fix comment typos.
2454
2455 2005-04-12 Mostafa Hagog <mustafa@il.ibm.com>
2456
2457         * postreload-gcse.c (eliminate_partially_redundant_load): Don't
2458         split critical edges when not possible/profitable.
2459
2460 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2461
2462         * config/ns32k/ns32k.h (target_flags, MASK_32081, MASK_RTD)
2463         (MASK_REGPARM, MASK_32532, MASK_32332, MASK_NO_SB, MASK_NO_BITFIELD)
2464         (MASK_HIMEM, MASK_32381, MASK_MULT_ADD, MASK_SRC, MASK_IEEE_COMPARE)
2465         (TARGET_32081, TARGET_32381, TARGET_MULT_ADD, TARGET_RTD)
2466         (TARGET_REGPARM, TARGET_32532, TARGET_32332, TARGET_SB, TARGET_HIMEM)
2467         (TARGET_BITFIELD, TARGET_IEEE_COMPARE, TARGET_SWITCHES): Delete.
2468         (OVERRIDE_OPTIONS): Clear MASK_SB instead of setting MASK_NO_SB.
2469         * config/ns32k/netbsd.h (TARGET_DEFAULT): Remove MASK_NO_SB and
2470         MASK_NO_BITFIELD.
2471         * config/ns32k/ns32k.c (ns32k_handle_option): New function.
2472         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2473         * config/ns32k/ns32k.opt: New file.
2474
2475 2005-04-12  Richard Sandiford  <rsandifo@redhat.com>
2476
2477         * config.gcc (m68k-*-linux*): Add m68k/ieee.opt to $extra_options.
2478         * config/m68k/m68k.h (target_flags, MASK_68020, TARGET_68020)
2479         (MASK_68030, TARGET_68030, MASK_68040, TARGET_68040, MASK_68040_ONLY)
2480         (TARGET_68040_ONLY, MASK_68060, TARGET_68060, MASK_5200, TARGET_5200)
2481         (MASK_CFV3, TARGET_CFV3, MASK_CFV4, TARGET_CFV4, MASK_528x)
2482         (TARGET_528x, MASK_CF_HWDIV, TARGET_CF_HWDIV, MASK_68881, TARGET_68881)
2483         (MASK_BITFIELD, TARGET_BITFIELD, MASK_SHORT, TARGET_SHORT)
2484         (MASK_ALIGN_INT, TARGET_ALIGN_INT, MASK_PCREL, TARGET_PCREL)
2485         (MASK_NO_STRICT_ALIGNMENT, TARGET_STRICT_ALIGNMENT, MASK_RTD)
2486         (TARGET_RTD, MASK_SEP_DATA, TARGET_SEP_DATA, MASK_ID_SHARED_LIBRARY)
2487         (TARGET_ID_SHARED_LIBRARY, MASK_ALL_CF_BITS, TARGET_SWITCHES)
2488         (TARGET_OPTIONS, SUBTARGET_SWITCHES, SUBTARGET_OPTIONS): Delete.
2489         (MASK_COLDFIRE): Formatting fixes.
2490         (TARGET_COLDFIRE): Turn into a boolean value for consistency.
2491         * config/m68k/linux.h (SUBTARGET_SWITCHES): Delete.
2492         * config/m68k/m68k.c (m68k_library_id_string): Initialize to
2493         "_current_shared_library_a5_offset_".
2494         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
2495         (MASK_ALL_CPU_BITS): New macro.
2496         (m68k_handle_option): New function.
2497         (override_options): Remove handling of m68k_library_id_string.
2498         * config/m68k/m68k.opt: New file.
2499         * config/m68k/ieee.opt: New file.
2500
2501 2005-04-11  Mark Mitchell  <mark@codesourcery.com>
2502
2503         * target-def.h (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2504         (TARGET_CXX_DETERMINE_CLASS_VISIBILITY): New macro.
2505         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2506         (TARGET_CXX): Adjust accordingly.
2507         * target.h (struct gcc_target): Remove epxort_class_data.  Add
2508         determine_class_data_visibility and class_data_always_comdat.
2509         * doc/tm.texi (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2510         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Document.
2511         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2512         * config/arm/arm.c (arm_cxx_export_class_data): Remove.
2513         (arm_cxx_determine_class_data_visibility): New.
2514         (arm_cxx_class_data_always_comdat): Likewise.
2515         (TARGET_CXX_EXPORT_CLASS_DATA): Remove.
2516         (TARGET_CXX_DETERMINE_CLASS_DATA_VISIBILITY): Define.
2517         (TARGET_CXX_CLASS_DATA_ALWAYS_COMDAT): Likewise.
2518         * config/arm/arm.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P): Define.
2519         * config/arm/symbian.h (TARGET_ARM_DYNAMIC_VAGUE_LINKAGE_P):
2520         Define.
2521
2522 2005-04-11  Devang Patel  <dpatel@apple.com>
2523
2524         * tree-data-ref.c (build_classic_dist_vector,
2525         compute_subscript_distance): Make externally visible.
2526         * tree-data-ref.h (build_classic_dist_vector,
2527         compute_subscript_distance): Same.
2528         * tree-vect-analyze.c (vect_analyze_data_ref_dependence):
2529         Check distance vector against vectorization factor.
2530         (vect_analyze_loop): Determine vectorizaion factor before
2531         analyzing data dependences.
2532         * tree-vectorizer.c (loops_num): Make it externally visible and
2533         rename ...
2534         * tree-vectorizer.c (vect_loops_num): ... new name.
2535         * tree-vectorizer.h  (vect_loops_num): New.
2536
2537 2005-04-11  Devang Patel  <dpatel@apple.com>
2538
2539         * tree-vect-analyze.c (vect_analyze_operations): Check
2540         vectorizable codition.
2541         * tree-vect-transform.c (vect_is_simple_cond): New function.
2542         (vectorizable_condition): New function.
2543         (vect_transform_stmt): Handle condition_vec_info_type.
2544         * tree-vectorizer.h (enum stmt_vec_info_type): Add
2545         condition_vec_info_type.
2546         (vectorizable_condition): New.
2547
2548 2005-04-11  Geoffrey Keating  <geoffk@apple.com>
2549
2550         * config/i386/i386.h (TARGET_FPMATH_DEFAULT): New.
2551         * config/i386/darwin.h (TARGET_FPMATH_DEFAULT): New.
2552         * config/i386/i386.c (override_options): Use TARGET_FPMATH_DEFAULT.
2553
2554         * config/i386/darwin.h (ASM_SPEC): Use -arch i386 not -arch i686.
2555         (SUBTARGET_EXTRA_SPECS): Always 'i386'.
2556
2557         * dwarf2out.c (output_line_info): Don't try to dereference
2558         a NULL current_function_decl.
2559
2560         * config/t-slibgcc-darwin: Don't put shared libraries in
2561         directories other than $(slibdir).
2562         * config/rs6000/darwin.h: Find -m64 libgcc under the name the
2563         OS uses for it.
2564
2565 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
2566
2567         PR tree-optimization/20933
2568         * tree-ssa-alias.c (compute_flow_insensitive_aliasing): Move
2569         logic to reject aliases between read-only and writable
2570         variables ...
2571         (may_alias_p): ... here.
2572         (get_tmt_for): Do not associate read-only tags to pointers
2573         whose pointed-to type is not read-only.
2574         * tree-ssa.c (verify_ssa): Check that memory stores have at
2575         least one V_MAY_DEF or V_MUST_DEF.
2576
2577 2005-04-11  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
2578
2579         PR/17092
2580         * configure.ac (gcc_UNLOCKED_FUNCS): New.
2581         (AC_CHECK_FUNCS, AC_CHECK_DECLS): Check for gcc_UNLOCKED_FUNCS.
2582         * system.h (putchar, getc, getchar, clearerr, feof, fileno,
2583         fflush, fgetc, fgets, ferror, fread): Redefine to the associated
2584         _unlocked function.
2585         (fwrite_unlocked): Fix prototype.
2586
2587         * configure, config.in: Regenerate.
2588
2589 2005-04-11  David Edelsohn  <edelsohn@gnu.org>
2590
2591         * tree-ssa-loop-im.c: Include real.h.
2592         (determine_invariantness_stmt): If real division divisor is
2593         invariant and flag_unsafe_math_optimizations enabled, generate
2594         invariant reciprocal for hoisting.
2595         * Makefile.in (tree-ssa-loop-im.o): Add real.h dependency.
2596
2597 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
2598
2599         Fix PR tree-optimization/20926
2600
2601         * tree-ssa-alias.c (add_type_alias): Handle subvars.
2602
2603 2005-04-11  Devang Patel  <dpatel@apple.com>
2604
2605         * config/rs6000.c (rs6000_emit_vector_select): Fix vector select
2606         operand ordering.
2607
2608 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
2609
2610         * fold-const.c (fold_binary_op_with_conditional_arg):
2611         use fold_buildN instead of "fold (buildN" in some
2612         non obvious places.
2613         (fold_unary): Likewise.
2614         (fold_binary): Likewise.
2615
2616 2005-04-11  Daniel Berlin  <dberlin@dberlin.org>
2617
2618         Fix PR tree-optimization/20612
2619         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Fix increment
2620         handling
2621         (perfect_nestify): preheaderbb is *not* part of loop of the
2622         old destination.
2623
2624 2005-04-11  Andrew Pinski  <pinskia@physics.uc.edu>
2625
2626         * tree-ssa-alias.c (may_alias_p): If the variable
2627         is a global variable and the pointer is parameter
2628         and -fargument-noalias-global is used, then
2629         the pointer cannot alias the variable.
2630
2631 2005-04-11  James A. Morrison  <phython@gcc.gnu.org>
2632
2633         * config/sparc/sparc.c: Use gcc_assert and gcc_unreachable.
2634         * config/sparc/sparc.h: Likewise.
2635         * config/sparc/sparc.md: Likewise.
2636
2637 2005-04-11  Kazu Hirata  <kazu@cs.umass.edu>
2638
2639         * tree-vrp.c (maybe_add_assert_expr): Move a comment.
2640
2641         * tree-vrp.c: Fix a comment typo.
2642
2643 2005-04-11  Diego Novillo  <dnovillo@redhat.com>
2644
2645         PR tree-optimization/20920
2646         * tree-pretty-print.c (dump_generic_node): Show '(ab)' if an
2647         SSA_NAME flows through an abnormal edge.
2648         * tree-vrp.c (infer_value_range): Ignore SSA names that flow
2649         through abnormal edges.
2650         (maybe_add_assert_expr): Likewise.
2651
2652 2005-04-11  Richard Sandiford  <rsandifo@redhat.com>
2653
2654         * config/s390/s390.h (s390_tune_string, s390_arch_string)
2655         (s390_warn_framesize_string, s390_warn_dynamicstack_string)
2656         (s390_stack_size_string, s390_stack_guard_string, target_flags)
2657         (MASK_HARD_FLOAT, MASK_SMALL_EXEC, MASK_DEBUG_ARG, MASK_64BIT)
2658         (MASK_ZARCH, MASK_MVCLE, MASK_TPF_PROFILING, MASK_NO_FUSED_MADD)
2659         (MASK_BACKCHAIN, MASK_PACKED_STACK, TARGET_HARD_FLOAT)
2660         (TARGET_SOFT_FLOAT, TARGET_SMALL_EXEC, TARGET_DEBUG_ARG)
2661         (TARGET_64BIT, TARGET_ZARCH, TARGET_MVCLE, TARGET_TPF_PROFILING)
2662         (TARGET_NO_FUSED_MADD, TARGET_FUSED_MADD, TARGET_BACKCHAIN)
2663         (TARGET_PACKED_STACK, TARGET_SWITCHES, TARGET_OPTIONS): Delete.
2664         * config/s390/s390.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
2665         (TARGET_HANDLE_OPTION): Likewise.
2666         (s390_tune): Initialize to PROCESSOR_max.
2667         (s390_arch_string): Make static.
2668         (s390_tune_string, s390_warn_framesize_string): Delete.
2669         (s390_warn_dynamicstack_string, s390_stack_size_string): Delete.
2670         (s390_stack_guard_string, s390_warn_dynamicstack_p): Delete.
2671         (s390_handle_arch_option, s390_handle_option): New functions.
2672         (override_options): Remove parsing of option strings.
2673         * config/s390/s390.opt: New file.
2674
2675 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
2676
2677         * tree-complex.c (expand_vector_operations): Call
2678         update_stmt_if_modified.
2679
2680 2005-04-11  Paolo Bonzini  <bonzini@gnu.org>
2681
2682         * tree-vect-analyze (vect_determine_vectorization_factor):
2683         Do not use GET_MODE_NUNITS.
2684         * tree-vect-transform.c (vect_get_vec_def_for_operand,
2685         (vectorizable_load, vect_transform_loop): Likewise.
2686
2687 2005-04-11  Uros Bizjak  <uros@kss-loka.si>
2688
2689         * builtins.def (BUILT_IN_LCEIL, BUILT_IN_LCEILF, BUILT_IN_LCEILL)
2690         (BUILT_IN_LLCEIL, BUILT_IN_LLCEILF, BUILT_IN_LLCEILL): New.
2691         * optabs.h (enum optab_index): Add new OTI_lceil.
2692         (lceil_optab): Define corresponding macro.
2693         * optabs.c (init_optabs): Initialize lceil_optab.
2694         * genopinit.c (optabs): Implement lceil_optab using lceilsi2
2695         and lceildi2 patterns.
2696         * builtins.c (expand_builtin_int_roundingfn): Handle
2697         BUILT_IN_LCEIL{,F,L} and BUILT_IN_LLCEIL{,F,L}.
2698         (fold_builtin_int_roundingfn): Handle BUILT_IN_LCEIL{,F,L} and
2699         BUILT_IN_LLCEIL{,F,L}.
2700         (fold_builtin_1): Fold BUILT_IN_LCEIL{,F,L} and
2701         BUILT_IN_LLCEIL{,F,L} using fold_builtin_int_roundingfn.
2702         (mathfn_built_in): Handle BUILT_IN LCEIL and BUILT_IN_LLCEIL.
2703         (expand_builtin): Expand BUILT_IN_LCEIL{,F,L} and
2704         BUILT_IN_LLCEIL{,F,L} using expand_builtin_int_roundingfn.
2705         * convert.c (convert_to_integer): Convert (long int)ceil{,f,l},
2706         into lceil built-in function and (long long int)ceil{,f,l} into
2707         llceil built-in function.
2708         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LCEIL and
2709         BUILT_IN_LLCEIL.
2710
2711 2005-04-10  John David Anglin  <dave.anglin@nrc-cnrc.gc.ca>
2712
2713         * pa/quadlib.c (_U_Qfneg): Toggle sign bit instead of subtracting from
2714         zero.
2715
2716 2005-04-10  Kazu Hirata  <kazu@cs.umass.edu>
2717
2718         * config/arm/arm.c: Fix a comment typo.
2719         * doc/tree-ssa.texi: Fix a typo.
2720
2721 2005-04-10  Steven Bosscher  <stevenb@suse.de>
2722
2723         * cselib.c (clear_table): Rename to cselib_clear_table.
2724         * cselib.h (cselib_clear_table): Add prototype.
2725         * gcse.c (gcse_main): Make 'f' argument unused.
2726         (alloc_gcse_mem): Do not walk the insn chain, walk the contents
2727         of each basic block instead.
2728         (compute_sets, compute_hash_table_work): Likewise.
2729         (constprop_register): Change int 'alter_jumps' argument to bool.
2730         (do_local_cprop): Likewise.
2731         (local_cprop_pass): Likewise.  Also walk basic blocks instead of
2732         the insn chain.  Explicitly clear the cselib tables after finishing
2733         one basic block.  Make sure there are no unterminated libcall blocks.
2734         Update compute_sets call.
2735         (cprop): Walk basic blocks instead of the insn chain.
2736         (one_cprop_pass, compute_ld_motion_mems, compute_store_table):
2737         Likewise.
2738         (bypass_jumps): Update alloc_gcse_mem, compute_sets, and
2739         one_cprop_pass calls.
2740
2741 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
2742
2743         * combine.c (combine_simplify_rtx): Remove a transformation that
2744         relies on an invalid assumption about rtl sign-extension semantics.
2745
2746 2005-04-10  Richard Sandiford  <rsandifo@redhat.com>
2747
2748         * value-prof.c (tree_divmod_fixed_value_transform): Fix arguments
2749         to build_int_cst_wide.
2750
2751 2005-04-09  Alexandre Oliva  <aoliva@redhat.com>
2752
2753         PR target/20126
2754         * loop.c (loop_givs_rescan): If replacement of DEST_ADDR failed,
2755         set the original address pseudo to the correct value before the
2756         original insn, if possible, and leave the insn alone, otherwise
2757         create a new pseudo, set it and replace it in the insn.
2758         * recog.c (validate_change_maybe_volatile): New.
2759         * recog.h (validate_change_maybe_volatile): Declare.
2760
2761 2005-04-09  Caroline Tice  <ctice@apple.com>
2762
2763         * bb-reorder.c (find_rarely_executed_basic_blocks_and_crossing_edges):
2764         Remove targetm.have_named_sections test.
2765         (fix_edges_for_rarely_executed_code): Likewise.
2766         (insert_section_boundary_note): Likewise.
2767         (reorder_basic_blocks): Check partitioning flag before calling
2768         verify_hot_cold_block_grouping.
2769         * dbxout.c (dbxout_function_end): Get hot/cold section labels from
2770         the function struct rather than global variables.
2771         * dwarf2out.c (COLD_TEXT_SECTION_LABEL): New macro.
2772         (COLD_END_LABEL): Likewise
2773         (cold_text_section_label): New static global variable.
2774         (cold_end_label): Likewise.
2775         (dwarf2out_switch_text_section): Get hot/cold section labels from
2776         the function struct rather than global variables.
2777         (output_aranges): Use cold_text_section_label and cold_end_label;
2778         check partitioning flag before putting out delta.
2779         (output_ranges): Remove incorrect code attempting to use
2780         hot/cold labels.
2781         (output_line_info): Get cold section label from function struct.
2782         (add_location_or_const_value_attribute): Likewise.
2783         (get_subprogram_die): Get hot/cold section labels from function struct.
2784         (dwarf2out_var_location): Likewise.
2785         (dwarf2out_init): Generate cold_text_section_label and cold_end_label;
2786         write out cold_text_section_label if partition flag is set.
2787         (dwarf2out_finish): Write out cold_end_label if partition flag is set;
2788         * function.h (struct function): Add new fields to point to hot/cold
2789         section labels: hot_section_label, cold_section_label,
2790         hot_section_end_label and cold_section_end_label; also add new field
2791         for cold text section name, unlikely_text_section_name.
2792         * opts.c (decode_options): Turn off partitioning flag if
2793         !targetm.have_named_sections.
2794         * output.h (hot_section_label): Remove.
2795         (hot_section_end_label): Remove.
2796         (cold_section_end_label): Remove.
2797         (unlikely_section_label): Remove.
2798         (unlikely_text_section_name): Remove.
2799         * passes.c (rest_of_handle_final):  Remove code that frees
2800         unlikely_text_section_name.
2801         * varasm.c (unlikely_section_label): Remove.
2802         (hot_section_label): Remove.
2803         (hot_section_end_label): Remove.
2804         (cold_section_end_label): Remove.
2805         (unlikely_text_section_name):  Remove.
2806         (initialize_cold_section_name): Modify to call
2807         targetm.strip_name_encoding; to store cold section name in current
2808         function struct, if it exists; and to only use the decl_section_name
2809         if flag_named_sections is true.
2810         (unlikely_text_section): Modify to get section name out of current
2811         function struct, if there is one; otherwise build it from
2812         UNLIKELY_EXECUTED_TEXT_SECTION_NAME.
2813         (in_unlikely_text_section): Likewise.
2814         (named_section): Modify to get/put cold section name in current function
2815         struct, if there is one.
2816         (function_section):  Change 'bool unlikely' to 'int reloc'; check
2817         targetm.have_named_sections before calling named_section.
2818         (current_function_section): Likewise.
2819         (assemble_start_function): Modify to get/put unlikely_text_section_name
2820         in current function struct; modify to get hot/cold section labels
2821         from function struct; initialize labels using
2822         ASM_GENERATE_INTERNAL_LABEL;
2823         test partitioning flag before writing out hot section label.
2824         (assemble_end_function): Test partitioning flag before writing out
2825         hot/cold section labels.
2826         (default_section_type_flags_1):  Modify to use array instead of
2827          char* for unlikely_text_section_name; set flags correctly for
2828          cold text section if there is not a current function decl.
2829
2830 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
2831
2832         * tree.h (enum tree_index): Add TI_VA_LIST_GPR_COUNTER_FIELD
2833         and TI_VA_LIST_FPR_COUNTER_FIELD.
2834         (va_list_gpr_counter_field, va_list_fpr_counter_field): Define.
2835         * tree-pass.h (pass_stdarg): Add.
2836         * tree-optimize.c (init_tree_optimization_passes): Add pass_stdarg.
2837         * tree-stdarg.c: New file.
2838         * tree-stdarg.h: New file.
2839         * Makefile.in (OBJS-common): Add tree-stdarg.o.
2840         (tree-stdarg.o): Add dependencies.
2841         * function.h (struct function): Add va_list_gpr_size and
2842         va_list_fpr_size fields.
2843         * function.c (allocate_struct_function): Initialize them.
2844         * target.h (struct gcc_target): Add stdarg_optimize_hook.
2845         * target-def.h (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2846         (TARGET_INITIALIZER): Add it.
2847
2848         * config/i386/i386.c (ix86_build_builtin_va_list): Initialize
2849         va_list_{g,f}pr_counter_field.
2850         (ix86_setup_incoming_varargs): Don't do anything if reg_save
2851         area will not be used.  Only save registers that tree-stdarg.c
2852         detected they need saving.
2853         (ix86_va_start): Don't set up fields that won't be used.
2854
2855         * config/rs6000/rs6000.c (rs6000_build_builtin_va_list): Initialize
2856         va_list_{g,f}pr_counter_field.
2857         (setup_incoming_varargs): Don't do anything if reg_save
2858         area will not be used.  Only save registers that tree-stdarg.c
2859         detected they need saving.
2860         (rs6000_va_start): Don't set up fields that won't be used.
2861
2862         * config/alpha/alpha.c: Include tree-flow.h and tree-stdarg.h.
2863         (alpha_build_builtin_va_list): Initialize va_list_gpr_counter_field.
2864         (va_list_skip_additions, alpha_stdarg_optimize_hook): New functions.
2865         (TARGET_STDARG_OPTIMIZE_HOOK): Define.
2866
2867 2005-04-09  Jakub Jelinek  <jakub@redhat.com>
2868
2869         PR target/20795
2870         * config/i386/i386.c (construct_container): Pass empty aligned
2871         struct, union or class in memory.
2872
2873 2005-04-09  Kazu Hirata  <kazu@cs.umass.edu>
2874
2875         * dominance.c, gthr-win32.h, reg-stack.c, tree-ssa-copy.c,
2876         tree-ssa-operands.c, tree-ssa.c, tree-vrp.c, varasm.c,
2877         config/alpha/alpha.c, config/arm/arm.c, config/m32r/m32r.h,
2878         config/rs6000/predicates.md: Fix comment typos.
2879
2880         * sched-int.h (haifa_insn_data): Remove blockage and units.
2881         (INSN_UNIT, INSN_BLOCKAGE, UNIT_BITS, BLOCKAGE_MASK,
2882         ENCODE_BLOCKAGE, UNIT_BLOCKED, BLOCKAGE_RANGE,
2883         MIN_BLOCKAGE_COST, MAX_BLOCKAGE_COST): Remove.
2884
2885 2005-04-09  Jan Hubicka  <jh@suse.cz>
2886             Steven Bosscher  <stevenb@suse.de>
2887
2888         * cfglayout.c (copy_bbs): Rename n_edges to num_edges.
2889         * cfgloop.c (get_loop_exit_edges): Likewise.
2890         * cfgloopmanip.c (fix_irreducible_loops): Likewise.
2891         (unloop): Likewise.
2892         * loop-unroll.c (analyze_insns_in_loop): Likewise.
2893         * tree-cfg.c (dump_cfg_status): Likewise.
2894
2895 2005-04-09  David Edelsohn  <edelsohn@gnu.org>
2896
2897         * config/rs6000/predicates.md (altivec_register_operand): Remove
2898         redundant match_code test.
2899         (gpc_reg_operand): Same.
2900         (cc_reg_operand): Same.
2901         (cc_reg_not_cr0_operand): Same.
2902
2903 2005-04-09  Jan Hubicka  <jh@suse.cz>
2904
2905         Forgotten hunk from my last merge patch:
2906         * final.c (output_addr_const): Do not call mark_referenced.
2907
2908 2005-04-09  Andrew MacLeod  <amacleod@redhat.com>
2909
2910         * doc/tree-ssa.texi: Add immediate use documentation.
2911
2912 2005-04-09  Richard Earnshaw <richard.earnshaw@arm.com>
2913
2914         * arm.c (FL_WBUF): Define.
2915         (arm_tune_strongarm): Renamed from arm_is_strong.  All uses changed.
2916         (arm_is_6_or_7): Delete.
2917         (arm_tune_wbuf): New.
2918         (arm_override_options): Set arm_tune_wbuf.
2919         * arm.h (arm_tune_strongarm): Renamed from arm_is_strong.
2920         (arm_is_6_or_7): Delete declaration.
2921         (arm_tune_wbuf): New declartion.
2922         * arm.md (is_strongarm): Derive from arm_tune_strongarm.
2923         (model_wbuf): Derive from arm_tune_wbuf.
2924         * arm-cores.def (arm600, arm610, arm620, arm700, arm700i, arm710)
2925         (arm720, arm710c, arm7100, arm7500, arm7500fe, arm710t, arm720t)
2926         (arm740t): Mark CPUs as having a write buffer.
2927
2928 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
2929
2930         * config/i386/i386.md (*fp_jcc_7_387): Use 'const0_operand' instead
2931         of 'const_double_operand' in operand 2 constraints.  Update enable
2932         condition.
2933
2934 2005-04-09  Uros Bizjak  <uros@kss-loka.si>
2935
2936         * builtins.def (BUILT_IN_LFLOOR, BUILT_IN_LFLOORF, BUILT_IN_LFLOORL)
2937         (BUILT_IN_LLFLOOR, BUILT_IN_LLFLOORF, BUILT_IN_LLFLOORL): New.
2938         * optabs.h (enum optab_index): Add new OTI_lfloor.
2939         (lfloor_optab): Define corresponding macro.
2940         * optabs.c (init_optabs): Initialize lfloor_optab.
2941         * genopinit.c (optabs): Implement lfloor_optab using lfloorsi2
2942         and lfloordi2 patterns.
2943         * builtins.c (expand_builtin_int_roundingfn): New prototype.
2944         (expand_builtin_int_roundingfn): New function.
2945         (fold_builtin_int_roundingfn): New prototype.
2946         (fold_builtin_int_roundingfn): New function, renamed from
2947         fold_builtin_lround.
2948         Handle BUILT_IN_LROUND{,F,L}, BUILT_IN_LLROUND{,F,L} and
2949         BUILT_IN_LFLOOR{,F,L}, BUILT_IN_LLFLOOR{,F,L}.
2950         (fold_builtin_1): Fold BUILT_IN_LFLOOR{,F,L} and
2951         BUILT_IN_LLFLOOR{,F,L} using fold_builtin_int_roundingfn.
2952         (mathfn_built_in): Handle BUILT_IN LFLOOR and BUILT_IN_LLFLOOR.
2953         (expand_builtin): Expand BUILT_IN_LFLOOR{,F,L} and
2954         BUILT_IN_LLFLOOR{,F,L} using expand_builtin_int_roundingfn.
2955         * convert.c (convert_to_integer): Convert (long int)floor{,f,l},
2956         into lfloor built-in function and (long long int)floor{,f,l} into
2957         llfloor built-in function.
2958         * fold-const.c (tree_expr_nonnegative_p): Add BUILT_IN_LFLOOR and
2959         BUILT_IN_LLFLOOR.
2960
2961 2005-04-08  Ian Lance Taylor  <ian@airs.com>
2962
2963         * c-common.def: Move FOR_STMT, WHILE_STMT, DO_STMT, BREAK_STMT,
2964         CONTINUE_STMT, and SWITCH_STMT to cp/cp-tree.def.
2965         * c-common.h (WHILE_COND, WHILE_BODY): Move to cp/cp-tree.h.
2966         (DO_COND, DO_BODY): Likewise.
2967         (FOR_INIT_STMT, FOR_COND, FOR_EXPR, FOR_BODY): Likewise.
2968         (SWITCH_STMT_COND, SWITCH_STMT_BODY, SWITCH_STMT_TYPE): Likewise.
2969         (c_common_stmt_codes): Remove FOR_STMT, WHILE_STMT, DO_STMT,
2970         BREAK_STMT, CONTINUE_STMT, and SWITCH_STMT.
2971         (build_continue_stmt, build_break_stmt): Don't declare.
2972         (c_do_switch_warnings): Update declaration.
2973         * c-gimplify.c (enum bc_t): Remove.
2974         (struct c_gimplify_ctx, ctxp): Remove.
2975         (push_context, pop_context): Remove static functions.
2976         (c_genericize): Don't call push_context or pop_context.
2977         (begin_bc_block, finish_bc_block): Remove static functions.
2978         (build_bc_goto): Likewise.
2979         (gimplify_c_loop): Likewise.
2980         (gimplify_for_stmt, gimplify_while_stmt): Likewise.
2981         (gimplify_do_stmt, gimplify_switch_stmt): Likewise.
2982         (c_gimplify_expr): Remove handling of FOR_STMT, WHILE_STMT,
2983         DO_STMT, SWITCH_STMT, CONTINUE_STMT, BREAK_STMT.
2984         * c-common.c (c_do_switch_warnings): Rename from
2985         c_do_switch_warnings_1.
2986         (c_do_switch_warnings) [old version]: Remove.
2987         (c_do_switch_expr_warnings): Remove.
2988         * c-typeck.c (c_finish_case): Call new c_do_switch_warnings
2989         function instead of c_do_switch_expr_warnings.
2990         * c-dump.c (c_dump_tree): Remove handling of BREAK_STMT,
2991         CONTINUE_STMT, DO_STMT, FOR_STMT, SWITCH_STMT, and WHILE_STMT.
2992         * c-pretty-print.c (pp_c_statement): Likewise.
2993         * c-semantics.c (build_break_stmt, build_continue_stmt): Remove.
2994
2995 2005-04-08  Devang Patel  <dpatel@apple.com>
2996
2997         * tree-if-conv.c (find_phi_replacement_condition): New parameter, loop.
2998         While selecting replacement condition pay attention to loop header.
2999
3000 2005-04-08  Diego Novillo  <dnovillo@redhat.com>
3001
3002         Merge from tree-cleanup-branch: VRP, store CCP, store
3003             copy-prop, incremental SSA updating of FUD chains and
3004             newly exposed symbols.
3005
3006         * Makefile.in (tree-ssa-copy.o): Depend on tree-ssa-propagate.h.
3007         (OBJS-common): Add tree-vrp.o.
3008         (tree-vrp.o): New rule.
3009         * basic-block.h (nearest_common_dominator_for_set): Declare.
3010         * common.opt (ftree-store-ccp): New flag.
3011         (ftree-copy-prop): New flag.
3012         (ftree-vrp): New flag.
3013         (ftree-store-copy-prop): New flag.
3014         * dominance.c (nearest_common_dominator_for_set): New.
3015         * domwalk.c (walk_dominator_tree): Only traverse
3016         statements in blocks marked in walk_data->interesting_blocks.
3017         * domwalk.h (struct dom_walk_data): Add field interesting_blocks.
3018         * fold-const.c (fold): Handle ASSERT_EXPR.
3019         * opts.c (decode_options): Set flag_tree_copy_prop at -O1.
3020         Set flag_tree_store_ccp, flag_tree_store_copy_prop and
3021         flag_tree_vrp at -O2.
3022         * timevar.def (TV_TREE_VRP): Define.
3023         (TV_TREE_COPY_PROP): Define.
3024         (TV_TREE_STORE_COPY_PROP): Define.
3025         (TV_TREE_SSA_INCREMENTAL): Define.
3026         (TV_TREE_STORE_CCP): Define.
3027         * tree-cfg.c (tree_can_merge_blocks_p): Remove reference
3028         to kill_redundant_phi_nodes from comment.
3029         (verify_expr): Handle ASSERT_EXPR.
3030         * tree-dfa.c (mark_new_vars_to_rename): Remove second
3031         argument.  Update all users.
3032         (mark_call_clobbered_vars_to_rename): Remove.  Update all
3033         users.
3034         * tree-flow-inline.h (unmodifiable_var_p): New.
3035         * tree-flow.h (enum value_range_type): Declare.
3036         (struct value_range_def): Declare.
3037         (value_range): Declare.
3038         (remove_all_phi_nodes_for): Remove.  Update all users.
3039         (find_phi_node_for): Declare.
3040         (add_type_alias): Declare.
3041         (count_uses_and_derefs): Declare.
3042         (kill_redundant_phi_nodes): Remove.
3043         (rewrite_into_ssa): Remove.
3044         (rewrite_def_def_chains): Remove.
3045         (update_ssa, register_new_name_mapping, create_new_def_for,
3046         need_ssa_update_p, name_registered_for_update_p,
3047         release_ssa_name_after_update_ssa, dump_repl_tbl,
3048         debug_repl_tbl, dump_names_replaced_by,
3049         debug_names_replaced_by, mark_sym_for_renaming,
3050         mark_set_for_renaming, get_current_def, set_current_def,
3051         get_value_range, dump_value_range, debug_value_range,
3052         dump_all_value_ranges, debug_all_value_ranges,
3053         expr_computes_nonzero, loop_depth_of_name,
3054         unmodifiable_var_p): Declare.
3055         * tree-gimple.c (is_gimple_formal_tmp_rhs): Handle
3056         ASSERT_EXPR.
3057         * tree-into-ssa.c (block_defs_stack): Update comment.
3058         (old_ssa_names, new_ssa_names, old_virtual_ssa_names,
3059         syms_to_rename, names_to_release, repl_tbl,
3060         need_to_initialize_update_ssa_p, need_to_update_vops_p,
3061         need_to_replace_names_p): New locals.
3062         (NAME_SETS_GROWTH_FACTOR): Define.
3063         (struct repl_map_d): Declare.
3064         (struct mark_def_sites_global_data): Add field
3065         interesting_blocks.
3066         (enum rewrite_mode): Declare.
3067         (REGISTER_DEFS_IN_THIS_STMT): Define.
3068         (compute_global_livein): Use last_basic_block instead of
3069         n_basic_blocks.
3070         (set_def_block): Remove last argument.  Update all callers.
3071         (prepare_use_operand_for_rename): Remove.  Update all callers.
3072         (prepare_def_operand_for_rename): Remove.  Update all callers.
3073         (symbol_marked_for_renaming): New.
3074         (is_old_name): New.
3075         (is_new_name): New.
3076         (repl_map_hash): New.
3077         (repl_map_eq): New.
3078         (repl_map_free): New.
3079         (names_replaced_by): New.
3080         (add_to_repl_tbl): New.
3081         (add_new_name_mapping): New.
3082         (mark_def_sites): Assume that all the operands in the
3083         statement are in normal form.
3084         (find_idf): Assert that the block in the stack is valid.
3085         (get_default_def_for): New.
3086         (insert_phi_nodes_for): Add new argument 'update_p'.
3087         Add documentation.
3088         If update_p is true, add a new mapping between the LHS of
3089         each new PHI and the name that it replaces.
3090         (insert_phi_nodes_1): Only call find_idf if needed.
3091         (get_reaching_def): Call get_default_def_for.
3092         (rewrite_operand): Remove.
3093         (rewrite_stmt): Do nothing if REGISTER_DEFS_IN_THIS_STMT
3094         and REWRITE_THIS_STMT are false.
3095         Assume that all the operands in the statement are in
3096         normal form.
3097         (rewrite_add_phi_arguments): Don't use PHI_REWRITTEN.
3098         (rewrite_virtual_phi_arguments): Remove.
3099         (invalidate_name_tags): Remove.
3100         (register_new_update_single, register_new_update_set,
3101         rewrite_update_init_block, replace_use,
3102         rewrite_update_fini_block, rewrite_update_stmt,
3103         rewrite_update_phi_arguments): New.
3104         rewrite_blocks): Remove argument 'fix_virtual_phis'.
3105         Add arguments 'entry', 'what' and 'blocks'.
3106         Initialize the dominator walker according to 'what' and
3107         'blocks'.
3108         Start the dominator walk at 'entry'.
3109         (mark_def_site_blocks): Add argument 'interesting_blocks'.
3110         Use it to configure the dominator walker.
3111         (rewrite_into_ssa): Remove argument 'all'.
3112         Make internal.
3113         (rewrite_all_into_ssa): Remove.
3114         (rewrite_def_def_chains): Remove.
3115         (mark_def_interesting, mark_use_interesting,
3116         prepare_phi_args_for_update, prepare_block_for_update,
3117         prepare_def_site_for, prepare_def_sites,
3118         dump_names_replaced_by, debug_names_replaced_by,
3119         dump_repl_tbl, debug_repl_tbl, init_update_ssa,
3120         delete_update_ssa, create_new_def_for,
3121         register_new_name_mapping, mark_sym_for_renaming,
3122         mark_set_for_renaming, need_ssa_update_p,
3123         name_registered_for_update_p, ssa_names_to_replace,
3124         release_ssa_name_after_update_ssa,
3125         insert_updated_phi_nodes_for, update_ssa): New.
3126         * tree-loop-linear.c (linear_transform_loops): Call
3127         update_ssa instead of rewrite_into_ssa.
3128         * tree-optimize.c (vars_to_rename): Remove.
3129         Update all users.
3130         (init_tree_optimization_passes): Replace
3131         pass_redundant_phi with pass_copy_prop.
3132         Add pass_vrp.
3133         Replace pass_ccp with pass_store_ccp.
3134         Add pass_store_copy_prop after pass_store_ccp.
3135         (execute_todo): If the TODO_ flags don't include updating
3136         the SSA form, assert that it does not need to be updated.
3137         Call update_ssa instead of rewrite_into_ssa and
3138         rewrite_def_def_chains.
3139         If TODO_verify_loops is set, call verify_loop_closed_ssa.
3140         (tree_rest_of_compilation):
3141         * tree-pass.h (TODO_dump_func, TODO_ggc_collect,
3142         TODO_verify_ssa, TODO_verify_flow, TODO_verify_stmts,
3143         TODO_cleanup_cfg): Renumber.
3144         (TODO_verify_loops, TODO_update_ssa,
3145         TODO_update_ssa_no_phi, TODO_update_ssa_full_phi,
3146         TODO_update_ssa_only_virtuals): Define.
3147         (pass_copy_prop, pass_store_ccp, pass_store_copy_prop, pass_vrp):
3148         Declare.
3149         * tree-phinodes.c (make_phi_node): Update documentation.
3150         (remove_all_phi_nodes_for): Remove.
3151         (find_phi_node_for): New.
3152         * tree-pretty-print.c (dump_generic_node): Handle ASSERT_EXPR.
3153         * tree-scalar-evolution.c (follow_ssa_edge_in_rhs): Likewise.
3154         (interpret_rhs_modify_expr): Likewise.
3155         * tree-sra.c (decide_instantiations): Mark all symbols in
3156         SRA_CANDIDATES for renaming.
3157         (mark_all_v_defs_1): Rename from mark_all_v_defs.
3158         (mark_all_v_defs): New function.  Update all users to call it
3159         with the whole list of scalarized statements, not just the
3160         first one.
3161         * tree-ssa-alias.c (count_ptr_derefs): Make extern.
3162         (compute_flow_insensitive_aliasing): If the tag is
3163         unmodifiable and the variable isn't or vice-versa, don't
3164         make them alias of each other.
3165         (setup_pointers_and_addressables): If the type tag for
3166         VAR is about to change, mark the old one for renaming.
3167         (add_type_alias): New.
3168         * tree-ssa-ccp.c: Document SSA-CCP and STORE-CCP.
3169         (ccp_lattice_t): Rename from latticevalue.
3170         (value): Remove.  Update all users.
3171         (const_val): New local variable.
3172         (do_store_ccp): New local variable.
3173         (dump_lattice_value): Handle UNINITIALIZED.
3174         (debug_lattice_value): New.
3175         (get_default_value): Re-write.
3176         (set_lattice_value): Re-write.
3177         (def_to_varying): Remove.  Update all users.
3178         (likely_value): Return VARYING for statements that make
3179         stores when STORE_CCP is false.
3180         Return VARYING for any statement other than MODIFY_EXPR,
3181         COND_EXPR and SWITCH_EXPR.
3182         (ccp_initialize): Re-write.
3183         (replace_uses_in, replace_vuse_in, substitute_and_fold):
3184         Move to tree-ssa-propagate.c.
3185         (ccp_lattice_meet): Handle memory stores when
3186         DO_STORE_CCP is true.
3187         (ccp_visit_phi_node): Likewise.
3188         (ccp_fold): Likewise.
3189         (evaluate_stmt): Likewise.
3190         (visit_assignment): Likewise.
3191         (ccp_visit_stmt): Likewise.
3192         (execute_ssa_ccp): Add argument 'store_ccp'.  Copy it
3193         into DO_STORE_CCP.
3194         (do_ssa_ccp): New.
3195         (pass_ccp): Use it.
3196         (do_ssa_store_ccp): New.
3197         (gate_store_ccp): New.
3198         (pass_store_ccp): Declare.
3199         * tree-ssa-copy.c: Include tree-ssa-propagate.h.
3200         (may_propagate_copy): Reformat.
3201         Don't abort if ORIG is a virtual and DEST isn't.
3202         If NEW does not have alias information but DEST does,
3203         copy it.
3204         (copy_of, cached_last_copy_of, do_store_copy_prop, enum
3205         copy_prop_kind, which_copy_prop): Declare.
3206         (stmt_may_generate_copy, get_copy_of_val,
3207         get_last_copy_of, set_copy_of_val, dump_copy_of,
3208         copy_prop_visit_assignment, copy_prop_visit_cond_stmt,
3209         copy_prop_visit_stmt, copy_prop_visit_phi_node,
3210         init_copy_prop, fini_copy_prop, execute_copy_prop,
3211         gate_copy_prop, do_copy_prop, gate_store_copy_prop,
3212         store_copy_prop): New.
3213         (pass_copy_prop, pass_store_copy_prop): Declare.
3214         * tree-ssa-dom.c (struct opt_stats_d): Add fields
3215         'num_const_prop' and 'num_copy_prop'.
3216         (cprop_operand): Update them.
3217         (dump_dominator_optimization_stats): Dump them.
3218         (tree_ssa_dominator_optimize): Call update_ssa instead of
3219         rewrite_into_ssa.
3220         (loop_depth_of_name): Declare extern.
3221         (simplify_cond_and_lookup_avail_expr): Guard against NULL
3222         values for LOW or HIGH.
3223         (cprop_into_successor_phis): Only propagate if NEW != ORIG.
3224         (record_equivalences_from_stmt): Call expr_computes_nonzero.
3225         (cprop_operand): Only propagate if VAL != OP.
3226         * tree-ssa-dse.c (dse_optimize_stmt): Mark symbols in removed
3227         statement for renaming.
3228         * tree-ssa-loop-im.c (move_computations): Call update_ssa.
3229         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call
3230         add_type_alias if necessary.
3231         Call mark_new_vars_to_rename.
3232         (tree_ssa_iv_optimize): If new symbols need to be renamed,
3233         mark every statement updated, call update_ssa and
3234         rewrite_into_loop_closed_ssa.
3235         * tree-ssa-loop-manip.c (add_exit_phis): Do not remove DEF_BB
3236         from LIVEIN if VAR is a virtual.
3237         * tree-ssa-loop.c (tree_loop_optimizer_init): Call update_ssa.
3238         * tree-ssa-operands.c (get_expr_operands): Handle ASSERT_EXPR.
3239         (get_call_expr_operands): Reformat statement.
3240         (add_stmt_operand): Don't create V_MAY_DEFs for read-only
3241         symbols.
3242         * tree-ssa-propagate.c (ssa_prop_init): Initialize
3243         SSA_NAME_VALUE for every name.
3244         (first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3245         get_value_loaded_by): New.
3246         (replace_uses_in, replace_vuses_in, replace_phi_args_in,
3247         substitute_and_fold): Move from tree-ssa-ccp.c.
3248         * tree-ssa-propagate.h (struct prop_value_d, prop_value_t,
3249         first_vdef, stmt_makes_single_load, stmt_makes_single_store,
3250         get_value_loaded_by, replace_uses_in, substitute_and_fold):
3251         Declare.
3252         * tree-ssa.c (verify_use): Fix error message.
3253         (propagate_into_addr, replace_immediate_uses, get_eq_name,
3254         check_phi_redundancy, kill_redundant_phi_nodes,
3255         pass_redundant_phi): Remove.  Update all users.
3256         * tree-vect-transform.c (vect_create_data_ref_ptr): Call
3257         add_type_alias, if necessary.
3258         * tree-vectorizer.h (struct _stmt_vect_info): Update
3259         documentation for field 'memtag'.
3260         * tree-vrp.c: New file.
3261         * tree.def (ASSERT_EXPR): Define.
3262         * tree.h (ASSERT_EXPR_VAR): Define.
3263         (ASSERT_EXPR_COND): Define.
3264         (SSA_NAME_VALUE_RANGE): Define.
3265         (struct tree_ssa_name): Add field 'value_range'.
3266         (PHI_REWRITTEN): Remove.
3267         (struct tree_phi_node): Remove field 'rewritten'.
3268         * doc/invoke.texi (-fdump-tree-storeccp, -ftree-copy-prop,
3269         -ftree-store-copy-prop): Document.
3270         * doc/tree-ssa.texi: Remove broken link to McCAT's compiler.
3271         Document usage of update_ssa.
3272
3273 2005-04-08  David Edelsohn  <edelsohn@gnu.org>
3274
3275         PR target/20814
3276         * config/rs6000/predicates.md (altivec_register_operand): Accept
3277         SUBREG.
3278         (and64_operand): Do not limit CONST_INT to mask64_operand.
3279         (and64_2_operand): Do not limit CONST_INT to mask64_1or2_operand.
3280         (and_operand): Do not limit CONST_INT to mask_operand.
3281
3282 2005-04-09  Hans-Peter Nilsson  <hp@axis.com>
3283
3284         PR rtl-optimization/20466
3285         * flow.c (invalidate_mems_from_set): Handle a MEM by checking it
3286         for overlap of the address of each list member.
3287         (mark_set_1): Call invalidate_mems_from_set for MEMs too.
3288
3289 2005-04-08  Mike Stump  <mrs@apple.com>
3290
3291         * config/darwin.c (indirect_data): Fix typo in strncmp logic.
3292
3293         * config/rs6000/rs6000.c (rs6000_emit_prologue): Use 5 nops,
3294         instead of 4.
3295
3296 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3297
3298         * c-tree.h (C_LANG_TREE_NODE_CHAIN_NEXT): Remove.
3299
3300         * function.c (push_function_context_to): Don't set
3301         contains_functions.
3302         * function.h (function): Remove contains_functions.
3303         (current_function_contains_functions): Remove.
3304
3305         * function.h (function): Remove instrument_entry_exit.
3306         (current_function_instrument_entry_exit): Remove.
3307
3308         * function.h (nonlocal_labels): Remove.
3309
3310         * tree.h (STRIP_MAIN_TYPE_NOPS): Remove.
3311
3312         * genattrtab.c (attr_desc): Remove negative_ok and unsigned_p.
3313         (check_attr_value, write_attr_get, write_expr_attr_cache,
3314         find_attr, make_internal_attr): Don't reference negative_ok or
3315         unsigned_p.
3316         * genattrtab.h (ATTR_NEGATIVE_OK, ATTR_UNSIGNED,
3317         ATTR_FUNC_UNITS, ATTR_BLOCKAGE): Remove.
3318         (ATTR_STATIC): Adjust the value.
3319
3320         * c-common.h (C_ARTIFICIAL_STRING_P): Remove.
3321
3322 2005-04-08  Ulrich Weigand  <uweigand@de.ibm.com>
3323
3324         * config/s390/tpf.h (ASM_SPEC): Define.
3325
3326 2005-04-08  Kazu Hirata  <kazu@cs.umass.edu>
3327
3328         * tree-flow.h: Remove the prototype for
3329         redirect_immediate_uses.
3330         (TDFA_USE_OPS, TDFA_USE_VOPS): Remove.
3331
3332 2005-04-08  Richard Earnshaw  <richard.earnshaw@arm.com>
3333
3334         * arm.c (arm_const_double_by_parts): New function.
3335         * arm-protos.h (arm_const_double_by_parts): Add prototype.
3336         * arm.md (define_split for 64-bit constants): Add another one.
3337
3338 2005-04-08  Andrew MacLeod  <amacleod@redhat.com>
3339
3340         * tree-ssa-operands.c (correct_use_link): Remove linear scan.
3341
3342 2005-04-08  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3343
3344         * system.h: Revert last change.
3345
3346 2005-04-08  Richard Sandiford  <rsandifo@redhat.com>
3347
3348         * config/xtensa/xtensa.h (target_flags, MASK_NO_FUSED_MADD)
3349         (MASK_CONST16, TARGET_NO_FUSED_MADD, TARGET_CONST16)
3350         (TARGET_SWITCHES): Delete.
3351         * config/xtensa/xtensa.c (TARGET_DEFAULT_TARGET_FLAGS): Define.
3352         * config/xtensa/xtensa.md (muladdsf3, mulsubsf3): Check
3353         TARGET_FUSED_MADD instead of !TARGET_NO_FUSED_MADD.
3354         * config/xtensa/xtensa.opt: New file.
3355
3356 2005-04-08  Ben Elliston  <bje@au.ibm.com>
3357
3358         * config/fp-bit.c: Include L_mul_tf in #endif comment.
3359         * config/fp-bit.h: Tidy comments.
3360
3361 2005-04-07  Kaveh R. Ghazi  <ghazi@caip.rutgers.edu>
3362
3363         * system.h: Poison PARAMS.
3364
3365 2005-04-07  Richard Sandiford  <rsandifo@redhat.com>
3366
3367         * config/vax/vax.h (target_flags, MASK_UNIX_ASM, MASK_VAXC_ALIGNMENT)
3368         (MASK_G_FLOAT, TARGET_UNIX_ASM, TARGET_VAXC_ALIGNMENT, TARGET_G_FLOAT)
3369         (TARGET_SWITCHES): Delete.
3370         * config/vax/vax.c (TARGET_DEFAULT_TARGET_FLAGS): Override default.
3371         * config/vax/vax.opt: New file.
3372
3373 2005-04-07  Daniel Berlin  <dberlin@dberlin.org>
3374
3375         * tree-ssa-dse.c (dse_optimize_stmt): Fix incorrect comment.
3376
3377 2005-04-07  Ian Lance Taylor  <ian@airs.com>
3378
3379         * config/iq2000/iq2000.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Don't
3380         define.
3381         * config/mips/mips.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE): Likewise.
3382         * config/sparc/sparc.h (DONT_ACCESS_GBLS_AFTER_EPILOGUE):
3383         Likewise.
3384
3385 2005-04-07  Kazu Hirata  <kazu@cs.umass.edu>
3386
3387         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Consider
3388         all immediate uses in PHI nodes.
3389
3390 2005-04-07  Richard Earnshaw  <richard.earnshaw@arm.com>
3391
3392         * arm.c (arm_const_double_inline_cost): Handle any constant by
3393         using gen_lowpart and gen_highpart_mode.
3394         (note_invalid_constants): All constants in an RTX with a constraint
3395         that permits memory are now pushed to the constant pool.
3396         (output_move_double): Delete code to handle reg to reg and
3397         constant to reg moves.
3398         (const_double_needs_minipool, output_mov_immediate): Delete.
3399         * arm.h (EXTRA_CONSTRAINT_STR_ARM): All 'D' variants now handle
3400         CONST_INT and CONST_VECTOR.
3401         * arm.md (ANY64): New mode macro.
3402         (arm_movdi): Split reg-reg and const-reg moves.  Simplify constraints.
3403         (movdf_soft_insn): Split reg-reg and const-reg moves.
3404         (split patterns for 64-bit constant and register moves): New.
3405         * cirrus.md (cirrus_arm_movdi): Split reg-reg and const-reg moves.
3406         (cirrus_movdf_hard_insn): Likewise.
3407         * fpa.md (movdf_fpa): Likewise.
3408         * iwmmxt.md (iwmmxt_arm_movdi): Likewise.
3409         (movv8qi_internal, movv4hi_internal, movv2si_internal): Fix
3410         constraints.
3411         (movv2si_internal_2): Likewise.
3412         * vfp.md (arm_movdi_vfp): Split reg-reg and const-reg moves.
3413         (movdf_vfp): Likewise.
3414         * arm-protos.h (output_mov_immediate): Delete prototype.
3415
3416 2005-04-07  Joseph S. Myers  <joseph@codesourcery.com>
3417
3418         PR target/20093
3419         * simplify-rtx.c (simplify_unary_operation_1): Check
3420         SUBREG_PROMOTED_UNSIGNED_P (op) > 0 for zero-extension.
3421
3422 2005-04-06  James E Wilson  <wilson@specifixinc.com>
3423
3424         PR target/20717
3425         * cgraphunit.c (record_call_1, case FDESC_EXPR): Handle same as
3426         ADDR_EXPR.
3427
3428 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3429
3430         * coverage.h (GCOV_TYPE_NODE): Delete.
3431         * coverage.c (coverage_counter_alloc, tree_coverage_counter_ref)
3432         (build_ctr_info_type): Use get_gcov_type () instead of GCOV_TYPE_NODE.
3433         * tree-profile.c (tree_gen_edge_profiler, tree_gen_interval_profiler)
3434         (tree_gen_pow2_profiler, tree_gen_one_value_profiler): Likewise.
3435         * value-prof.c (tree_divmod_fixed_value_transform): Delete.
3436
3437 2004-04-06  Richard Sandiford  <rsandifo@redhat.com>
3438
3439         PR other/20792
3440         * Makefile.in (gcc.pot): Remove options.c dependency.
3441         * optc-gen.awk: Don't quote help strings with N_().
3442
3443 2005-04-06  James A. Morrison  <phython@gcc.gnu.org>
3444
3445         * c-common.c (handle_malloc_atttribute): Only set DECL_IS_MALLOC if
3446         the function returns a pointer type.
3447
3448 2005-04-06  Daniel Berlin  <dberlin@dberlin.org>
3449
3450         * params.def (PARAM_SALIAS_MAX_IMPLICIT_FIELDS): New
3451         * params.h (SALIAS_MAX_IMPLICIT_FIELDS): New
3452         * doc/invoke.texi: Documnet salias-max-implicit-fields.
3453         * tree-ssa-alias.c (struct used_part): Add implicit_uses and
3454         explicit_uses members.
3455         (get_or_create_used_part_for): Initialize new fields.
3456         (fieldoff_compare): New function.
3457         (create_overlap_variables_for): Count number of fields, use
3458         heuristic to determine whether to create subvars for vars with
3459         only implicit uses.
3460         Sort the field list by offset and avoid creating duplicate SFT's.
3461
3462 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3463
3464         * c.opt (-F): Remove trailing whitespace from help string.
3465         (-finput-charset): Use a tab to separate the switch name and help
3466         string.
3467         * common.opt (-fsched-stalled-insns, -fsched-stalled-insns-dep)
3468         (-ftree-vectorizer-verbose): Likewise.
3469
3470 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3471
3472         * tree-ssa-sink.c (nearest_common_dominator_of_uses): Look at
3473         a PHI argument where a use occurs instead of all PHI arguments.
3474
3475 2005-04-06  Joseph S. Myers  <joseph@codesourcery.com>
3476
3477         * c-decl.c (finish_decl): Apply pending #pragma weak regardless of
3478         scope.
3479
3480 2005-04-06  Kazu Hirata  <kazu@cs.umass.edu>
3481
3482         * cse.c, tree-flow-inline.h, tree-flow.h, tree-ssa-operands.c,
3483         tree-ssa-sink.c, tree.h, config/bfin/bfin.c,
3484         config/bfin/bfin.h: Fix comment typos.
3485
3486 2005-04-06  Ranjit Mathew  <rmathew@hotmail.com>
3487
3488         * doc/install.texi: Update the URL for Jacks.
3489         * doc/sourcebuild.texi: Likewise.
3490
3491 2005-04-06  Eric Botcazou  <ebotcazou@libertysurf.fr>
3492
3493         PR target/17245
3494         * config/sparc/sparc.c (legitimate_address_p): Remove 'imm2'.
3495         Revert 2004-10-08 patch.  Reject TFmode LO_SUM in 32-bit mode.
3496
3497 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
3498
3499         * Makefile.in (LIBGCC2_CFLAGS): Revert -pipe change.
3500
3501 2005-04-06  Richard Sandiford  <rsandifo@redhat.com>
3502
3503         * config/v850/v850-protos.h (override_options): Delete.
3504         * config/v850/v850.h (target_flags, MASK_GHS, MASK_LONG_CALLS, MASK_EP)
3505         (MASK_PROLOG_FUNCTION, MASK_DEBUG, MASK_V850, MASK_V850E)
3506         (MASK_SMALL_SLD, MASK_BIG_SWITCH, MASK_NO_APP_REGS, MASK_DISABLE_CALLT)
3507         (MASK_STRICT_ALIGN, MASK_US_BIT_SET, MASK_US_MASK_SET, TARGET_GHS)
3508         (TARGET_LONG_CALLS, TARGET_EP, TARGET_PROLOG_FUNCTION, TARGET_V850)
3509         (TARGET_BIG_SWITCH, TARGET_DEBUG, TARGET_V850E, TARGET_US_BIT_SET)
3510         (TARGET_SMALL_SLD, TARGET_DISABLE_CALLT, TARGET_NO_APP_REGS)
3511         (TARGET_STRICT_ALIGN, TARGET_SWITCHES, TARGET_OPTIONS)
3512         (OVERRIDE_OPTIONS): Delete.
3513         (MASK_CPU): Redefine as MASK_V850 | MASK_V850E.
3514         (small_memory_info): Remove the value field.
3515         (CONDITIONAL_REGISTER_USAGE): Check !TARGET_APP_REGS rather than
3516         TARGET_NO_APP_REGS.
3517         * config/v850/v850.c (small_memory): Remove the value field.
3518         (TARGET_DEFAULT_TARGET_FLAGS, TARGET_HANDLE_OPTION): Override defaults.
3519         (override_options): Delete.
3520         (v850_handle_memory_option, v850_handle_option): New functions.
3521         * config/v850/v850.opt: New file.
3522
3523 2005-04-06  Geoffrey Keating  <geoffk@apple.com>
3524
3525         * config.host: Add a section for generic hosts, and a subsection
3526         for Darwin.  Add a case for x86-darwin.  Update ppc-darwin case.
3527         * config/host-darwin.c: New, split out of config/rs6000/host-darwin.c.
3528         * config/host-darwin.h: New.
3529         * config/x-darwin: New.
3530         * config/i386/host-i386-darwin.c: New.
3531         * config/i386/x-darwin: New.
3532         * config/rs6000/host-darwin.c: Include host-darwin.h.
3533         (darwin_rs6000_gt_pch_get_address): Move to config/host-darwin.c.
3534         (darwin_rs6000_gt_pch_use_address): Likewise.
3535         * config/rs6000/x-darwin: Change name of .o built, update
3536         dependencies for changes to rs6000/host-darwin.c.
3537
3538 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
3539
3540         PR target/17824
3541         * config/c4x/c4x.h (ASM_PROG, LD_PROG): Remove.
3542
3543 2005-04-06  Dorit Naishlos  <dorit@il.ibm.com>
3544
3545         * tree-vect-analyze.c (vect_analyze_loop_form): Call
3546         split_loop_exit_edge instead of loop_split_edge_with.
3547
3548 2005-04-06  Paolo Bonzini  <bonzini@gnu.org>
3549
3550         * config/rs6000/altivec.md (UNSPEC_VSLW, UNSPEC_SUBS,
3551         UNSPEC_SET_VSCR): New constants, used throughout.
3552         (*andc3_v4sf): New.
3553         (altivec_vspltisb, altivec_vsplitish, altivec_vsplitisw):
3554         Replace with...
3555         (altivec_vspltis<VI_char>): ... this pattern, using
3556         a QImode const_int_operand for the immediate.
3557         (abs<mode>2, absv4sf2, altivec_abss_<mode>): Rewrite as
3558         define_expands.
3559
3560 2005-04-06  Ralf Corsepius  <ralf.corsepius@rtems.org>
3561
3562         PR target/17822
3563         * config/avr/t-avr (AR_FOR_TARGET,RANLIB_FOR_TARGET): Remove.
3564
3565 2005-04-06  Kelley Cook  <kcook@gcc.gnu.org>
3566
3567         * Makefile.in (LIBGCC2_CFLAGS): Compile with -pipe.
3568
3569 2005-04-06  Ben Elliston  <bje@au.ibm.com>
3570
3571         * gcc.c: Correct comment about DEFAULT_SWITCH_TAKES_ARG and
3572         DEFAULT_WORD_SWITCH_TAKES_ARG which incorrectly reported these
3573         macros as living in "this file" and not gcc.h.
3574
3575 2005-04-06  Ben Elliston  <bje@au.ibm.com>
3576
3577         * doc/invoke.texi (Optimize Options): Mention -ftree-lrs, not
3578         -ftree-live_range_split.  Perhaps renamed at some point?
3579
3580 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
3581
3582         PR target/20625
3583         * tree-ssa-loop-ivopts.c (generic_type_for): New function.
3584         (add_candidate_1): Use generic_type_for instead of unsigned_type_for.
3585
3586 2005-04-06  Zdenek Dvorak  <dvorakz@suse.cz>
3587
3588         * tree-flow.h (number_of_iterations_cond): Declaration removed.
3589         * tree-ssa-loop-niter.c (number_of_iterations_cond): Made static.
3590         (number_of_iterations_special): New function.
3591         (number_of_iterations_exit): Use number_of_iterations_special.
3592         Use simplify_using_outer_evolutions only at -O3.
3593         (number_of_iterations_cond, tree_simplify_using_condition,
3594         simplify_using_initial_conditions, loop_niter_by_eval,
3595         compare_trees, can_count_iv_in_wider_type_bound,
3596         simplify_using_outer_evolutions): Use fold_build.
3597
3598 2005-04-05  Thomas Fitzsimmons  <fitzsim@redhat.com>
3599
3600         * doc/install.texi (Configuration): Document --with-java-home.
3601
3602 2005-04-05  Richard Henderson  <rth@redhat.com>
3603
3604         PR target/20342
3605         PR target/20447
3606         * config/i386/i386.c (print_operand): Handle vector zeros.
3607         (ix86_split_to_parts): Handle CONST_VECTOR.
3608         (ix86_hard_regno_mode_ok): Allow MMX modes in general regs.
3609         (ix86_modes_tieable_p): Use ix86_hard_regno_mode_ok to decide
3610         what modes to tie for MMX and SSE registers.
3611         * config/i386/i386.h (MMX_REG_MODE_P): Remove.
3612         * config/i386/i386.md: Extend move 0 -> xor peephole to apply
3613         to vector modes as well.
3614         * config/i386/predicates.md (const0_operand): Handle VOIDmode
3615         properly as an input mode.
3616
3617 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
3618
3619         * tree-ssa-operands.c (verify_abort): Use %p for pointers.
3620
3621 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
3622
3623         * tree-pretty-print.c (dump_generic_node): Use %p for pointer.
3624
3625 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
3626
3627         * config/i386/i386.c (init_cumulative_args): For -m32 -mfpmath=sse
3628         and local functions, set sse_nregs to 8 and float_in_sse.
3629         (function_arg_advance, function_arg): If float_in_sse, pass
3630         SFmode and DFmode arguments in SSE registers.
3631         * config/i386/i386.h (CUMULATIVE_ARGS): Add float_in_sse field.
3632
3633         * config/i386/i386.c (ix86_value_regno): Only optimize local functions
3634         of -funit-at-a-time.
3635
3636 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
3637
3638         * config/i386/i386-protos.h (ix86_function_value): Accept two
3639         arguments, like the target macro.
3640         * config/i386/i386.h (FUNCTION_VALUE): Pass both arguments.
3641         * config/i386/i386.c (ix86_function_value): Accept the second
3642         argument of the target macro.
3643         (ix86_function_ok_for_sibcall): Pass a function pointer to
3644         ix86_function_value.
3645         (ix86_function_value, ix86_libcall_value) [!TARGET_64BIT]: Adjust
3646         call to ix86_value_regno).
3647         (ix86_value_regno): Add support for returning floating point values
3648         in SSE registers.
3649
3650 2005-04-05  Jakub Jelinek  <jakub@redhat.com>
3651
3652         PR tree-optimization/20076
3653         * tree-inline.c (inline_forbidden_p_1): Prevent inlining functions
3654         that call __builtin_return or __builtin_apply_args.
3655
3656 2005-04-05  Andrew MacLeod  <amacleod@redhat.com>
3657
3658         * lambda-code.c (lambda_loopnest_to_gcc_loopnest): Use update_stmt.
3659         Use immediate use iterator.
3660         (stmt_is_bumper_for_loop): Use immediate use iterator.
3661         * predict.c (strip_builtin_expect): Use update_stmt.
3662         * tree-cfg.c (update_modified_stmts): New. Call update_stmt_if_modified
3663         on all elements of a STATEMENT_LIST.
3664         (bsi_insert_before, bsi_insert_after): Call update_modified_stmts.
3665         (bsi_remove): Remove imm_use links and mark the stmt as modified.
3666         (bsi_replace): Mark stmt as modified and the update it.
3667         * tree-complex.c (update_complex_assignment): Call mark_stmt_modified.
3668         (expand_complex_libcal): Call update_stmt.
3669         (expand_complex_comparison): Call mark_stmt_modified.
3670         (expand_complex_operations_1): Call update_stmt_if_modified.
3671         (expand_vector_operations_1): Call mark_stmt_modified.
3672         * tree-dfa.c (compute_immediate_uses, free_df_for_stmt, free_df,
3673         compute_immediate_uses_for_phi, compute_immediate_uses_for_stmt,
3674         add_immediate_use, redirect_immediate_use,
3675         redirect_immediate_uses, dump_immediate_uses, debug_immediate_uses,
3676         dump_immediate_uses_for, debug_immediate_uses_for): Delete.
3677         (mark_new_vars_to_rename): Call update_stmt.
3678         * tree-dump.c (dump_option_value_in): Add "stmtaddr".
3679         * tree-flow-inline.h (modify_stmt): Rename to mark_stmt_modified.
3680         Ignore PHI nodes.
3681         (unmodify_stmt): Delete.
3682         (update_stmt): New.  Force an update of a stmt.
3683         (update_stmt_if_modified): update a stmt if it is out of date.
3684         (get_stmt_operands): Verify stmt is NOT modified.
3685         (stmt_modified_p): Update comment.
3686         (delink_imm_use): Remove a use node from its immuse list.
3687         (link_imm_use_to_list): Link a use node to a specific list.
3688         (link_imm_use): Link a node to the correct list.
3689         (set_ssa_use_from_ptr): Set a use node to a specific value, and insert
3690         it in the correct list, if appropriate.
3691         (link_imm_use_stmt): Link a use node, and set the stmt pointer.
3692         (relink_imm_use): Link a use node in place of another node in a list.
3693         (relink_imm_use_stmt): LInk a node in place of another node, and set
3694         the stmt pointer.
3695         (end_safe_imm_use_traverse): New.  Terminate a safe immuse iterator.
3696         (end_safe_imm_use_p): New.  Check for the end of a safe immuse iterator.
3697         (first_safe_imm_use): New.  Initialize a safe immuse iterator.
3698         (next_safe_imm_use): New.  Proceed to next safe immuse iterator value.
3699         (end_readonly_imm_use_p): New.  Check for end of a fast immuse iterator.
3700         (first_readonly_imm_use): New.  Initialize a fast immuse iterator.
3701         (next_readonly_imm_use): New.  Get the next fast immuse iterator value.
3702         (has_zero_uses): New.  Return true if there are no uses of a var.
3703         (has_single_use): New.  Return true if there is only a single use of a
3704         variable.
3705         (single_imm_use): New.  Return the simgle immediate use.
3706         (num_imm_uses): New.  Return the number of immediate uses.
3707         (get_v_must_def_ops): Use is now a pointer.
3708         (use_operand_p, get_v_may_def_op_ptr, get_vuse_op_ptr,
3709         get_v_must_def_kill_ptr, get_phi_arg_def_ptr): Return the address of
3710         the use node.
3711         (get_immediate_uses, num_immediate_uses, immediate_use): Delete.
3712         (delink_stmt_imm_use): Delink all immuses from a stmt.
3713         (phi_arg_index_from_use): New.  Return a phi arg index for a use.
3714         * tree-flow.h (struct dataflow_d): Delete.
3715         (immediate_use_iterator_d): New.  Immediate use iterator struct.
3716         (FOR_EACH_IMM_USE_FAST): New.  Macro for read only immuse iteration.
3717         (FOR_EACH_IMM_USE_SAFE): New.  Macro for write-safe immuse iteration.
3718         (BREAK_FROM_SAFE_IMM_USE): New.  Macro for earlyu exit from write-safe
3719         iteration.
3720         (struct stmt_ann_d): Remove dataflow_t from struct.
3721         * tree-if-conv.c (tree_if_conversion).  Don't call free_df.
3722         (if_convertible_phi_p): Use FAST immuse iterator.
3723         (if_convertible_loop_p): Don't call compute_immediate_uses.
3724         (replace_phi_with_cond_modify_expr): Call update_stmt.
3725         * tree-into-ssa.c (mark_def_sites, ssa_mark_def_sites): Call
3726         update_stmt_if_modified.
3727         (rewrite_all_into_ssa): Initialize ssa operands.
3728         * tree-loop-linear.c (linear_transform_loops): Don't call free_df or
3729         compute_immediate_uses.
3730         * tree-optimize.c (execute_todo): Call verify_ssa whenever the
3731         ssa_property is available.
3732         (execute_one_pass):  Change parameters passed to execute_todo.
3733         * tree-outof-ssa.c (rewrite_trees): Don't call modify_stmt.
3734         (remove_ssa_form): Call fini_ssa_operands.
3735         (insert_backedge_copies): Delete call to modify_stmt.
3736         * tree-phinodes.c (make_phi_node): Initialize use nodes.
3737         (release_phi_node): Delink any use nodes before releasing.
3738         (resize_phi_node): Relink any use nodes.
3739         (remove_phi_arg_num): Delink the use node.
3740         (remove_phi_node): Release the ssa_name AFTER releasing the phi node.
3741         (remove_all_phi_nodes_for): Release phi node first.
3742         * tree-pretty-print.c (dump_generic_node): Print stmt address.
3743         * tree-sra.c (mark_all_v_defs): Call update_stmt_if_modified.
3744         (scalarize_use, scalarize_copy): Call update_stmt.
3745         * tree-ssa-alias.c (compute_may_aliases): Update all modified stmts.
3746         (compute_points_to_and_addr_escape): Call mark_stmt_modified.
3747         * tree-ssa-cpp.c (need_imm_uses_for): Delete.
3748         (ccp_initialize): Remove call to compute_immediate_uses.
3749         (substitute_and_fold, execute_fold_all_builtins): Call update_stmt.
3750         * tree-ssa-dom.c (tree_ssa_dominator_optimize): Update all modified
3751         stmts.
3752         (simplify_cond_and_lookup_avail_expr): Call mark_stmt_modified.
3753         (simplify_switch_and_lookup_avail_expr): Call mark_stmt_modified.
3754         (eliminate_redundant_computations): Call mark_stmt_modified.
3755         (cprop_operand): Call mark_stmt_modified.
3756         (optimize_stmt): Call update_stmt_if_modified and mark_stmt_modified.
3757         * tree-ssa-dse.c (fix_phi_uses, fix_stmt_v_may_defs): Delete.
3758         (dse_optimize_stmt): Use new immuse interface.
3759         (tree_ssa_dse): Remove calls to compute_immediate_uses and free_df.
3760         * tree-ssa-forwprop.c (need_imm_uses_for): Delete.
3761         (substitute_single_use_vars): Use new immuse interface.
3762         (tree_ssa_forward_propagate_single_use_vars): Remove calls to free_df
3763         and compute_immediate_uses.
3764         * tree-ssa-loop-im.c (single_reachable_address): Use new immuse
3765         interface.
3766         (rewrite_mem_refs): Call update_stmt.
3767         (determine_lsm): Remove call to compute_imm_uses and free_df.
3768         * tree-ssa-loop-ivcanon.c (create_canonical_iv): Call update_stmt.
3769         (try_unroll_loop_completely): Call update_stmt.
3770         * tree-ssa-loop-ivopts.c (rewrite_address_base): Call update_stmt.
3771         (rewrite_use_compare): Call update_stmt.
3772         (compute_phi_arg_on_exit): Insert each stmt before trying to process.
3773         (rewrite_use) : Call update_stmt.
3774         * tree-ssa-loop-manip.c (verify_loop_closed_ssa): Add arg to call.
3775         * tree-ssa-loop-unswitch.c (tree_unswitch_single_loop): Call
3776         update_stmt.
3777         * tree-ssa-operands.c (NULL_USE_OPERAND_P): Remove declaration.
3778         (allocate_use_optype, allocate_vuse_optype): Adjust allocation size.
3779         (free_uses, free_vuses, free_v_may_defs, free_v_must_defs): Delink
3780         use nodes.
3781         (initialize_vuse_operand): New.  Initialize a vuse operand.
3782         (initialize_v_may_def_operand): New.  Initialize a maydef operand.
3783         (initialize_v_must_def_operand): New.  Initialize a mustdef operand.
3784         (finalize_ssa_defs): Use stmt parameter.
3785         (correct_use_link): Ensure a use node is in the correct list, and has
3786         the correct stmt pointer.
3787         (finalize_ssa_uses, finalize_ssa_v_may_defs, finalize_ssa_vuses,
3788         finalize_ssa_v_must_defs): Also initialize use nodes.
3789         (finalize_ssa_stmt_operands): Pass extra stmt operands.
3790         (build_ssa_operands): Seperate parsing from final operand construction.
3791         (parse_ssa_operands): New.  Parse entry point for operand building.
3792         (swap_tree_operands): New.  Swap 2 tree operands.
3793         (update_stmt_operands): Ranamed from get_stmt_operands.  Always builds
3794         operands.
3795         (get_expr_operands): Call swap_tree_operands when needed.
3796         (copy_virtual_operands): Use initialize routines for virtual use ops.
3797         (create_ssa_artficial_load_stmt): Add extra stmt parameter.
3798         (verify_abort): New.  Issue imm_use error.
3799         (verify_imm_links): New Verify imm_use links for a var.
3800         (dump_immediate_uses_for): New.  Dump imm_uses for a var to file.
3801         (dump_immediate_uses): New.  Dump imm_uses for all vars to file.
3802         (debug_immediate_uses): New.  Dump imm_uses for all vars to stderr.
3803         (debug_immediate_uses_for): New.  Dump imm_uses for a var to stderr.
3804         * tree-ssa-operands.h (struct use_operand_ptr): Delete.
3805         (NULL_USE_OPERAND_P) Define.
3806         (use_optype_d, v_def_use_operand_type, vuse_optype_d): Add immediate
3807         use node.
3808         (struct vuse_operand_type): New struct.
3809         (SET_USE): Call set_ssa_use_from_ptr.
3810         (USE_STMT): Define.
3811         (PHI_ARG_INDEX_FROM_USE): Define.
3812         * tree-ssa-phiopt.c (replace_phi_edge_with_variable): Set the phi
3813         argument via SET_USE, not PHI_ARG_DEF_TREE.
3814         * tree-ssa-pre.c (eliminate): Call update_stmt.
3815         * tree-ssa-propagate.c (cfg_blocks_get): Use imm_use iterators.  Don't
3816         call free_df.
3817         * tree-ssa-sink.c (all_immediate_uses_same_place): Use imm_use iterator.
3818         (nearest_common_dominator_of_uses): Use imm_use iterator.
3819         (statement_sink_location): Use imm_use iterator and interface.
3820         (execute_sink_code): Don't call compute_immediate_uses or free-df.
3821         * tree-ssa-threadupdate.c (create_edge_and_update_destination_phis): Use
3822         PHI_ARG_DEF, not PHI_ARG_DEF_TREE.
3823         * tree-ssa.c (verify_use, verify_phi_args): Verify some imm_use info.
3824         (verify_ssa): Ensure no stmt is marked modify after optimization pass
3825         if new parameter is true.
3826         (init_tree_ssa): Don't initialize operand cache here.
3827         (delete_tree_ssa): Don't destroy operand cache here.
3828         (propagate_into_addr): Pass in a use pointer, return true if anything
3829         was changed.
3830         (replace_immediate_uses): Use imm_use iterator, call update_stmt.
3831         (check_phi_redundancy): Use imm_use iterator.
3832         (kill_redundant_phi_nodes): Don't call compute_immediate_uses or
3833         free_df.
3834         * tree-ssanames.c (make_ssa_name): Initialize imm_use node.
3835         (release_ssa_name): Delink node and all elements in its imm_use list.
3836         * tree-tailcall.c (adjust_return_value): Call update_stmt.
3837         * tree-vect-analyze.c (vect_stmt_relevant_p): Use imm_use iterator.
3838         * tree-vectorizer.c (need_imm_uses_for): Delete.
3839         (vectorize_loops): Dont call compute_immediate_uses or free_df.
3840         * tree.h (struct ssa_imm_use_d): Define.
3841         (SSA_NAME_IMM_USE_NODE): Define.
3842         (struct tree_ssa_name): Add imm_use node.
3843         (PHI_DF): Delete.
3844         (PHI_ARG_IMM_USE_NODE): Define.
3845         (struct phi_arg_d): Add imm_use node.
3846         (struct tree_phi_node): Remove struct dataflow_d element.
3847         (TDF_STMTADDR): Define.
3848
3849 2005-04-05  Dale Johannesen  <dalej@apple.com>
3850
3851         * doc/invoke.texi (Optimization Options):  Remove
3852         duplicate -fcse-follow-jumps.  Add -fweb.
3853         (-ftree-lim):  Fix spelling (-ftree-loop-im, invariants).
3854         (-fivcanon):  Fix spelling (-ftree-loop-ivcanon).
3855
3856 2005-04-05  Per Bothner  <per@bothner.com>
3857
3858         * tree-ssa.c (execute_early_warn_uninitialized): Pass context node
3859         to talk_tree as 'data' parameter, rather than EXPR_LOCUS.
3860         (warn_uninit): Get EXPR_LOCUS from context now instead.
3861         This fixes a USE_MAPPED_LOCATION testsuite failure.
3862
3863         * tree-ssa.c (warn_uninitialized_var): Remove useless local.
3864
3865 2005-04-05  Per Bothner  <per@bothner.com>
3866
3867         * c-decl.c (finish_function): If USE_MAPPED_LOCATION set the location
3868         of the artification 'return 0' in main() to BUILTINS_LOCATION.
3869         * tree-cfg.c (remove_bb): Check that location isn't BUILTINS_LOCATION
3870         before warning.
3871
3872 2004-04-05  Devang Patel  <dpatel@apple.com>
3873
3874         * config/rs600/altivec.md (altivec_vsr<VI_char>): Rename to ..
3875         (lhsr<mode>3): ... new name.
3876         (altivec_vsra<VI_char>): Rename to ..
3877         (ashr<mode>3): ... new name.
3878         * config/rs6000/rs6000.c (builtin_description): Rename shift
3879         operations.
3880
3881 2004-04-05  Paolo Bonzini  <bonzini@gnu.org>
3882
3883         * combine.c (RTL_HOOKS_GEN_LOWPART_NO_EMIT): Use
3884         gen_lowpart_for_combine.
3885         * cse.c (gen_lowpart_if_possible): Move...
3886         * rtlhooks.c (gen_lowpart_if_possible): ... here.  Also try
3887         gen_lowpart_SUBREG.
3888         (gen_lowpart_no_emit_general): Use it.
3889
3890 2005-04-05  Eric Botcazou  <ebotcazou@libertysurf.fr>
3891
3892         * config/sparc/sparc.c (TARGET_ASM_FILE_END): Undefine before
3893         overriding.
3894
3895 2005-04-05  Paolo Bonzini  <bonzini@gnu.org>
3896
3897         * system.h: Fix typo.
3898
3899 2005-04-05  Bernd Schmidt  <bernd.schmidt@analog.com>
3900
3901         * config/bfin/bfin-modes.def: New file.
3902         * config/bfin/bfin-protos.h: New file.
3903         * config/bfin/bfin.c: New file.
3904         * config/bfin/bfin.h: New file.
3905         * config/bfin/bfin.md: New file.
3906         * config/bfin/bfin.opt: New file.
3907         * config/bfin/crti.s: New file.
3908         * config/bfin/crtn.s: New file.
3909         * config/bfin/elf.h: New file.
3910         * config/bfin/lib1funcs.asm: New file.
3911         * config/bfin/predicates.md: New file.
3912         * config/bfin/t-bfin: New file.
3913         * config/bfin/t-bfin-elf: New file.
3914         * doc/extend.texi (exception_handler, kspisusp, nesting, nmi_handler):
3915         Document new attributes.
3916         (interrupt, interrupt_handler, saveall): Update documentation for
3917         these attributes.
3918         * doc/install.texi (Specific): Add entry for the Blackfin.
3919         * doc/invoke.texi (Blackfin Options): New section.
3920         * doc/md.texi (Blackfin family): New section to document constraints.
3921         * config.gcc: Add bfin*-* and bfin*-elf configurations.
3922
3923 2005-04-05  Olivier Hainque  <hainque@adacore.com>
3924
3925         * config/mips/iris6.h (DWARF_FRAME_RETURN_COLUMN): Redefine to
3926         match what the system unwinder expects.
3927         * config/mips/mips.c (mips_frame_set): If we're saving the return
3928         address register and the dwarf return address column number differs
3929         from the hard register number, adjust the note reg to refer to the
3930         former.
3931
3932 2004-04-05  Richard Sandiford  <rsandifo@redhat.com>