OSDN Git Service

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